package Ġcom . car 3 0 0 . cam er alib . api _ new . params Ċ Ċ import Ġcom . car 3 0 0 . cam er alib . api _ new . callback . Get Photo Callback Ċ import Ġcom . car 3 0 0 . cam er alib . api _ new . work . Function Manager Ċ import Ġcom . car 3 0 0 . cam er alib . api _ new . work . I Worker Ċ Ċ /** Ċ Ġ* ĠBase Params Ċ Ġ* Ċ Ġ* Ġ@ author Ġpan fe i . pf Ċ Ġ* Ġ@ since Ġ 2 0 2 1 / 3 / 1 5 Ġ 1 7 : 5 9 Ċ Ġ*/ Ċ abstract Ġclass ĠBase Params < Params , ĠResult >( internal Ġval Ġmanager : ĠFunction Manager ) Ġ{ ĊĊĠĠĠ Ġfun Ġthen (): ĠFunction Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġmanager . worker List . add ( get Worker ( get Params ())) ĊĠĠĠĠĠĠĠ Ġreturn Ġmanager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart ( callback : ĠGet Photo Callback < Result >) Ġ{ ĊĠĠĠĠĠĠĠ Ġmanager . worker List . add ( get Worker ( get Params ())) ĊĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= Ġmanager . worker List . iterator () ĊĠĠĠĠĠĠĠ Ġstart Apply ( null , Ġiterator , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Apply ( ĊĠĠĠĠĠĠĠ Ġformer Result : ĠAny ?, ĊĠĠĠĠĠĠĠ Ġiterator : ĠMutable Iterator < Any >, ĊĠĠĠĠĠĠĠ Ġcallback : ĠGet Photo Callback < Result > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworker Ġ= Ġiterator . next () Ġas ? ĠI Worker < Params , ĠResult > ĊĠĠĠĠĠĠĠ Ġworker ?. start ( former Result , Ġobject Ġ: ĠGet Photo Callback < Result > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( data : ĠResult ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiterator . remove () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Apply ( data , Ġiterator , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Success ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Fail ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Fail ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Fail ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancel () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġabstract Ġfun Ġget Params (): ĠParams ĊĊĠĠĠ Ġinternal Ġabstract Ġfun Ġget Worker ( params : ĠParams ): ĠI Worker < Params , ĠResult > Ċ Ċ }