/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "). Ċ Ġ* ĠYou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠLicense Ġis Ġlocated Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// aws . amazon . com / apache 2 . 0 Ċ Ġ* Ċ Ġ* Ġor Ġin Ġthe Ġ" license " Ġfile Ġaccompanying Ġthis Ġfile . ĠThis Ġfile Ġis Ġdistributed Ċ Ġ* Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ċ Ġ* Ġexpress Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ċ Ġ* Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . amplify framework . kotlin . hub Ċ Ċ import Ġcom . amplify framework . core . Amp lify Ċ import Ġcom . amplify framework . hub . Hub Category Behavior Ġas ĠDelegate Ċ import Ġcom . amplify framework . hub . Hub Channel Ċ import Ġcom . amplify framework . hub . Hub Event Ċ import Ġcom . amplify framework . hub . Hub Event Filter Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkotlinx . coroutines . channels . await Close Ċ import Ġkotlinx . coroutines . channels . send Blocking Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . callback Flow Ċ Ċ class ĠKotlin Hub Facade ( private Ġval Ġdelegate : ĠDelegate Ġ= ĠAmp lify . Hub ) Ġ: ĠHub Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġpublish ( channel : ĠHub Channel , Ġevent : ĠHub Event <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelegate . publish ( channel , Ġevent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Flow Preview ĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġoverride Ġfun Ġsubscribe ( channel : ĠHub Channel , Ġfilter : ĠHub Event Filter ): ĠFlow < Hub Event <* >> Ġ= ĊĠĠĠĠĠĠĠ Ġcallback Flow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġdelegate . subscribe ( channel , Ġfilter ) Ġ{ Ġsend Blocking ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġawait Close Ġ{ Ġdelegate . unsubscribe ( token ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ