private ProxyObserver CreateRemoteObserver(IPEndPoint remoteEndpoint) { StreamingTransportClient <IRemoteEvent <T> > client = new StreamingTransportClient <IRemoteEvent <T> >(remoteEndpoint, _observerContainer, _remoteEventCodec, _tcpClientFactory); ProxyObserver remoteObserver = new ProxyObserver(client); return(remoteObserver); }
/// <summary> /// Returns an IObserver used to send messages to the remote host at /// the specified IPEndpoint. /// </summary> /// <param name="remoteEndpoint">The IPEndpoint of the remote host</param> /// <returns>An IObserver used to send messages to the remote host</returns> public IObserver <T> GetRemoteObserver(IPEndPoint remoteEndpoint) { if (remoteEndpoint == null) { throw new ArgumentNullException("remoteEndpoint"); } ProxyObserver remoteObserver; if (!_cachedClients.TryGetValue(remoteEndpoint, out remoteObserver)) { StreamingTransportClient <IRemoteEvent <T> > client = new StreamingTransportClient <IRemoteEvent <T> >(remoteEndpoint, _observerContainer, _remoteEventCodec); remoteObserver = new ProxyObserver(client); _cachedClients[remoteEndpoint] = remoteObserver; } return(remoteObserver); }
/// <summary> /// Create new ProxyObserver /// </summary> /// <param name="client">The connected WritableTransport client used to send /// messages to remote host</param> public ProxyObserver(StreamingTransportClient <IRemoteEvent <T> > client) { _client = client; }