private ProxyObserver CreateRemoteObserver(IPEndPoint remoteEndpoint)
        {
            StreamingTransportClient <IRemoteEvent <T> > client =
                new StreamingTransportClient <IRemoteEvent <T> >(remoteEndpoint,
                                                                 _observerContainer,
                                                                 _remoteEventCodec,
                                                                 _tcpClientFactory);

            ProxyObserver remoteObserver = new ProxyObserver(client);

            return(remoteObserver);
        }
Exemple #2
0
        /// <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;
 }