package Ġcom . ton y ode v . dispatch . queue controller Ċ Ċ import Ġcom . ton y ode v . dispatch . Dispatch Queue Ċ Ċ /** Ċ Ġ* ĠA ĠDispatch Queue Controller Ġmanages Ġdispatch Ġqueues Ġand Ġis Ċ Ġ* Ġresponsible Ġfor Ġcancell ing Ġa Ġdispatch Ġqueue Ġat Ġthe Ġappropriate Ġtime . Ċ Ġ* Ġ*/ Ċ open Ġclass ĠDispatch Queue Controller Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdispatch Queue Map Ġ= Ġmutable Map Of < Int , ĠDispatch Queue <* >>() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthis Ġdispatch Ġqueue Ġcontroller Ġto Ġmanage Ġthe Ġpassed Ġin Ġdispatch Ġqueue . ĊĠĠĠĠ Ġ* Ġ@ param Ġdispatch Queue Ġthe Ġdispatch Queue Ġwho 's Ġqueue Ġwill Ġbe Ġmanaged . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġmanage ( dispatch Queue : ĠDispatch Queue <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Map [ dispatch Queue . id ] Ġ= Ġdispatch Queue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthis Ġdispatch Ġqueue Ġcontroller Ġto Ġmanage Ġthe Ġpassed Ġin Ġdispatch Ġqueue . ĊĠĠĠĠ Ġ* Ġ@ param Ġdispatch Queue List Ġa Ġlist Ġof Ġdispatch Ġwho 's Ġqueue Ġwill Ġbe Ġmanaged . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġmanage ( dispatch Queue List : ĠList < Dispatch Queue <* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dispatch Queue Ġin Ġdispatch Queue List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Map [ dispatch Queue . id ] Ġ= Ġdispatch Queue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStop Ġmanaging Ġthe Ġpassed Ġin Ġdispatch Ġqueue . ĊĠĠĠĠ Ġ* Ġ@ param Ġdispatch Queue Ġthe Ġdispatch Ġqueue Ġto Ġun manage . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġun manage ( dispatch Queue : ĠDispatch Queue <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Map . remove ( dispatch Queue . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStop Ġmanaging Ġthe Ġpassed Ġin Ġlist Ġdispatch Ġqueues . ĊĠĠĠĠ Ġ* Ġ@ param Ġdispatch Queue List Ġthe Ġlist Ġof Ġdispatch Ġqueues Ġto Ġun manage . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġun manage ( dispatch Queue List : ĠList < Dispatch Queue <* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dispatch Queue Ġin Ġdispatch Queue List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Map . remove ( dispatch Queue . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCancel s Ġall Ġthe Ġdispatch Ġqueues Ġthat Ġare Ġbeing Ġmanaged Ġby Ġthis ĊĠĠĠĠ Ġ* Ġinstance Ġof ĠDispatch Queue Controller . ĠAll Ġthe Ġdispatch Ġqueues Ġwill Ġthen Ġbe Ġunmanaged . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcancel All Dispatch Queues () Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= Ġdispatch Queue Map . iterator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdispatch Queue : ĠDispatch Queue < *> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Ġ= Ġiterator . next (). value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . remove () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCancel s Ġall Ġdispatch Ġqueues Ġbeing Ġmanaged Ġby Ġthis ĊĠĠĠĠ Ġ* Ġinstance Ġof ĠDispatch Queue Controller Ġif Ġit Ġis Ġin Ġthe Ġpassed Ġin Ġarray . ĊĠĠĠĠ Ġ* ĠThe Ġdispatch Ġqueue Ġwill Ġno Ġlonger Ġbe Ġmanaged . ĊĠĠĠĠ Ġ* Ġ@ param ĠarrayOf Dispatch Queues Ġdispatch Ġqueue Ġobjects . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcancel Dispatch Queues ( var arg ĠarrayOf Dispatch Queues : ĠDispatch Queue <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel Dispatch Queues ( array Of Dispatch Queues . map Ġ{ Ġit Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCancel s Ġall Ġdispatch Ġqueues Ġbeing Ġmanaged Ġby Ġthis ĊĠĠĠĠ Ġ* Ġinstance Ġof ĠDispatch Queue Controller Ġif Ġit Ġis Ġin Ġthe Ġpassed Ġin Ġcollection . ĊĠĠĠĠ Ġ* ĠThe Ġdispatch Ġqueue Ġwill Ġno Ġlonger Ġbe Ġmanaged . ĊĠĠĠĠ Ġ* Ġ@ param Ġdispatch Queue Collection Ġdispatch Ġqueues . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcancel Dispatch Queues ( dispatch Queue Collection : ĠCollection < Dispatch Queue <* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dispatch Queue Ġin Ġdispatch Queue Collection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Map . remove ( dispatch Queue . id )?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCancel s Ġdispatch Ġqueues Ġbeing Ġmanaged Ġby Ġthis ĊĠĠĠĠ Ġ* Ġinstance Ġof ĠDispatch Queue Controller Ġif Ġit 's Ġqueue Ġid Ġis Ġin Ġthe Ġpassed Ġin Ġlist . ĊĠĠĠĠ Ġ* ĠThe Ġdispatch Ġqueue Ġwill Ġno Ġlonger Ġbe Ġmanaged . ĊĠĠĠĠ Ġ* Ġ@ param Ġdispatch Queue Ids Ġthe Ġdispatch Ġqueue Ġids . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcancel Dispatch Queues ( dispatch Queue Ids : ĠList < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( dispatch Queue Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dispatch Queue Id Ġin Ġdispatch Queue Ids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Queue Map . remove ( dispatch Queue Id )?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCancel s Ġthe Ġdispatch Ġqueue Ġbeing Ġmanaged Ġby Ġthis ĊĠĠĠĠ Ġ* Ġinstance Ġof ĠDispatch Queue Controller Ġif Ġit 's Ġqueue Ġid Ġis Ġin Ġthe Ġpassed Ġin Ġarray . ĊĠĠĠĠ Ġ* ĠThe Ġdispatch Ġqueues Ġwill Ġno Ġlonger Ġbe Ġmanaged . ĊĠĠĠĠ Ġ* Ġ@ param ĠarrayOf Dispatch Queue Id Ġthe Ġdispatch Ġobjects Ġqueue Ġids . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġcancel Dispatch Queues ( var arg ĠarrayOf Dispatch Queue Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel Dispatch Queues ( array Of Dispatch Queue Id . toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġcopy Ġof Ġthe Ġmanaged Ġqueues . ĊĠĠĠĠ Ġ* Ġ@ return Ġcopy Ġof Ġthe Ġm ange d Ġqueues Ġin Ġa Ġset . ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġget Managed Dispatch Queues (): ĠSet < Dispatch Queue <* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsynchronized ( dispatch Queue Map ) Ġ{ Ġdispatch Queue Map . values . toSet () Ġ} ĊĠĠĠ Ġ} Ċ Ċ }