package Ġcom . e ag les ak ura . fire arm . rpc . service . rout ers Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġcom . e ag les ak ura . fire arm . rpc . service . Remote Client Ċ Ċ class ĠServer Procedure Router Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtable Ġ= Ġmutable Map Of < String , ĠServer Procedure >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd ĠAPI ĠHandler Ġfor ĠServer . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhandler ( ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġbuilder : Ġ( procedure : ĠServer Procedure ) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġ): ĊĠĠĠĠĠĠĠ ĠServer Procedure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠServer Procedure ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġproc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder ( proc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable [ path ] Ġ= Ġproc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandler Ġin Ġserver . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexecute On Server ( ĊĠĠĠĠĠĠĠ Ġclient : ĠRemote Client , ĊĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġarguments : ĠBundle ĊĠĠĠ Ġ): ĠBundle Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproc Ġ= Ġtable [ path ] Ġ?: Ġthrow ĠIllegalArgumentException (" Path [$ path ] Ġnot Ġmatch ") ĊĠĠĠĠĠĠĠ Ġreturn Ġproc . listen On Server ( client , Ġarguments ) ĊĠĠĠ Ġ} Ċ } Ċ