package Ġcom . react n atives pac ex . impl . transport . net Ċ Ċ import Ġcom . react n atives pac ex . impl . utils . Dispatch Queue Ċ Ċ class ĠWatch Dog Timer ( private Ġval Ġtimeout : ĠInt , Ġprivate Ġval Ġon Restart : Ġ() Ġ-> ĠUnit , Ġprivate Ġval Ġqueue : ĠDispatch Queue ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġis Dead Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġtimer : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġkick () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! this . queue . is Current Queue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠError (" Invalid ĠQueue ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( this . is Dead ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . timer ?. invoke () ĊĠĠĠĠĠĠĠ Ġthis . timer Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġthis . timer Ġ= Ġthis . queue . async Delayed ( this . timeout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . timer Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! this . is Dead ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Dead Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Restart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! this . queue . is Current Queue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠError (" Invalid ĠQueue ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . is Dead Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġthis . kick () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkill () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! this . queue . is Current Queue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠError (" Invalid ĠQueue ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . is Dead Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthis . timer ?. invoke () ĊĠĠĠĠĠĠĠ Ġthis . timer Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ