// // Returns router info for a given router. Automatically creates // the router info if it doesn't exist yet. // public RouterInfo get(Ice.RouterPrx rtr) { if(rtr == null) { return null; } // // The router cannot be routed. // Ice.RouterPrx router = Ice.RouterPrxHelper.uncheckedCast(rtr.ice_router(null)); lock(this) { RouterInfo info = null; if(!_table.TryGetValue(router, out info)) { info = new RouterInfo(router); _table.Add(router, info); } return info; } }
private EndpointI[] setServerEndpoints(Ice.ObjectPrx serverProxy) { lock(this) { if(serverProxy == null) { throw new Ice.NoEndpointException(); } serverProxy = serverProxy.ice_router(null); // The server proxy cannot be routed. _serverEndpoints = ((Ice.ObjectPrxHelperBase)serverProxy).reference__().getEndpoints(); return _serverEndpoints; } }
// // Returns router info for a given router. Automatically creates // the router info if it doesn't exist yet. // public RouterInfo erase(Ice.RouterPrx rtr) { RouterInfo info = null; if(rtr != null) { // // The router cannot be routed. // Ice.RouterPrx router = Ice.RouterPrxHelper.uncheckedCast(rtr.ice_router(null)); lock(this) { if(_table.TryGetValue(router, out info)) { _table.Remove(router); } } } return info; }
private EndpointI[] setClientEndpoints(Ice.ObjectPrx clientProxy) { lock(this) { if(_clientEndpoints == null) { if(clientProxy == null) { // // If getClientProxy() return nil, use router endpoints. // _clientEndpoints = ((Ice.ObjectPrxHelperBase)_router).reference__().getEndpoints(); } else { clientProxy = clientProxy.ice_router(null); // The client proxy cannot be routed. // // In order to avoid creating a new connection to the // router, we must use the same timeout as the already // existing connection. // if(_router.ice_getConnection() != null) { clientProxy = clientProxy.ice_timeout(_router.ice_getConnection().timeout()); } _clientEndpoints = ((Ice.ObjectPrxHelperBase)clientProxy).reference__().getEndpoints(); } } return _clientEndpoints; } }