public ConnectRequestHandler(RoutableReference routableReference) { _reference = routableReference; _initialized = false; _flushing = false; _requestHandler = this; }
internal void RemoveConnectRequestHandler(RoutableReference rf, ConnectRequestHandler handler) { if (rf.IsConnectionCached) { lock (_handlers) { if (_handlers.TryGetValue(rf, out ConnectRequestHandler h) && h == handler) { _handlers.Remove(rf); } } } }
public IRequestHandler Connect(RoutableReference reference) { Debug.Assert(reference == _reference); // not ReferenceEquals, see Communicator.GetRequestHandler lock (this) { if (!Initialized()) { if (_reference.IsConnectionCached) { _referenceList ??= new List <RoutableReference>(); _referenceList.Add(reference); } } return(_requestHandler); } }
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))); }
internal IRequestHandler GetRequestHandler(RoutableReference rf, IObjectPrx proxy) { if (rf.GetCollocationOptimized()) { ObjectAdapter?adapter = FindObjectAdapter(proxy); if (adapter != null) { return(proxy.IceSetRequestHandler(new CollocatedRequestHandler(rf, adapter))); } } bool connect = false; ConnectRequestHandler handler; if (rf.GetCacheConnection()) { lock (_handlers) { 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))); }