package Ġorg . trust note . wallet . network Ċ Ċ import Ġorg . trust note . wallet . network . pojo . Hub Msg Ċ import Ġorg . trust note . wallet . network . pojo . Hub Request Ċ import Ġorg . trust note . wallet . network . pojo . Hub Response Ċ import Ġorg . trust note . wallet . network . pojo . MSG _ TYPE Ċ import Ġorg . trust note . wallet . util . Utils Ċ import Ġjava . util .* Ċ Ċ class ĠRequest Map Ġ{ ĊĊĠĠĠ Ġ// private Ġval Ġcache Tag Ġ= ĠHashMap < String , ĠMSG _ TYPE >() ĊĠĠĠ Ġprivate Ġval Ġcache Req Ġ= ĠCollections . synchronized Map ( HashMap < String , ĠHub Request >()) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Bug : Ġwhen Ġput Ġto Ġcache , Ġif Ġthe Ġsame Ġtag Ġalready Ġexist , Ġthe Ġolder Ġrequest Ġwill Ġnever Ġfinished . ĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġput ( hub Msg : ĠHub Msg ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hub Msg . msg Type Ġ== ĠMSG _ TYPE . request ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Req [( hub Msg Ġas ĠHub Request ). tag ] Ġ= Ġhub Msg ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġremove ( hub Msg : ĠHub Msg ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hub Msg . msg Type Ġ== ĠMSG _ TYPE . response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . debug Hub (" remove Ġfor Ġtag :" Ġ+ Ġ( hub Msg Ġas ĠHub Response ). tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Req . remove (( hub Msg ). tag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġremove ( tag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcache Req . remove ( tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// TODO : ĠHow Ġabout ĠHub Ġreturn Ġa Ġwrong Ġtag . ĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġget Hub Request ( tag : ĠString ): ĠHub Request ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcache Req [ tag ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized Ġ// TODO : Ġreturn Ġan Ġiterator . ĊĠĠĠ Ġfun Ġget Retry Map (): ĠMap < String , ĠHub Msg > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcache Req ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġcache Req . clear () ĊĠĠĠĠĠĠĠ Ġ// cache Tag . clear () ĊĠĠĠ Ġ} Ċ Ċ } Ċ