package Ġpw . bin om . builder . common Ċ /* Ċ import Ġpw . bin om . io . Async Append able Ċ import Ġpw . bin om . io . Async Reader Ċ import Ġpw . bin om . json .* Ċ Ċ class ĠNode Status ( val Ġnode : ĠNode Info , Ġval Ġjob : ĠExecute Job ?) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġwrite ( ctx : ĠObject Ctx ) Ġ{ ĊĠĠĠĠĠĠĠ Ġctx . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode (" node ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode . write ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( job Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattr Null (" job ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode (" job ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob . write ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġwrite ( append able : ĠAsync Append able ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjson Node ( append able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġread ( node : ĠJsonNode ): ĠNode Status Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Info Ġ= ĠNode Info . read ( node . obj [" node "] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjob Ġ= Ġnode . obj [" job "] ?. let Ġ{ ĠExecute Job . read ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNode Status ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Ġ= Ġnode Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob Ġ= Ġjob ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġread ( reader : ĠAsync Reader ): ĠNode Status Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= ĠJson Dom Reader () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Reader ( reader ). accept ( r ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġread ( r . node ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ */