getRequestHandler(RoutableReference rf, Ice.ObjectPrxHelperBase proxy) { if (rf.getCollocationOptimized()) { Ice.ObjectAdapter adapter = _instance.objectAdapterFactory().findObjectAdapter(proxy); if (adapter != null) { return(proxy.iceSetRequestHandler(new CollocatedRequestHandler(rf, adapter))); } } bool connect = false; ConnectRequestHandler handler; if (rf.getCacheConnection()) { lock (this) { if (!_handlers.TryGetValue(rf, out handler)) { handler = new ConnectRequestHandler(rf, proxy); _handlers.Add(rf, handler); connect = true; } } } else { handler = new ConnectRequestHandler(rf, proxy); connect = true; } if (connect) { rf.getConnection(handler); } return(proxy.iceSetRequestHandler(handler.connect(proxy))); }