protected ConnectionListener( Uri addressUri, AmqpSettings amqpSettings, AmqpConnectionSettings connectionSettings) { amqpSettings.ValidateListenerSettings(); this.listenAddress = addressUri; this.amqpSettings = amqpSettings; this.connectionSettings = connectionSettings; this.onAcceptTransport = this.OnAcceptTransport; TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.SetEndPoint(addressUri.Host, addressUri.Port, true); TransportListener tpListener = null; if (addressUri.Scheme.Equals(AmqpConstants.SchemeAmqps, StringComparison.OrdinalIgnoreCase)) { TlsTransportProvider tlsProvider = this.amqpSettings.GetTransportProvider<TlsTransportProvider>(); if (tlsProvider == null) { throw Fx.Exception.ArgumentNull("TlsSecurityProvider"); } Fx.Assert(tlsProvider.Settings.Certificate != null, "Must have a valid certificate."); TlsTransportSettings tlsSettings = new TlsTransportSettings(tcpSettings, false); tlsSettings.Certificate = tlsProvider.Settings.Certificate; tpListener = tlsSettings.CreateListener(); } else { tpListener = tcpSettings.CreateListener(); } this.transportListener = new AmqpTransportListener(new TransportListener[] { tpListener }, this.amqpSettings); this.onConnectionOpenComplete = new AsyncCallback(this.OnConnectionOpenComplete); }
public TcpTransport(Socket socket, TcpTransportSettings transportSettings) : base() { this.socket = socket; this.socket.SendBufferSize = transportSettings.TcpBufferSize; this.socket.ReceiveBufferSize = transportSettings.TcpBufferSize; this.sendEventArgs = new SocketAsyncEventArgs(); this.sendEventArgs.Completed += new EventHandler<SocketAsyncEventArgs>(this.OnAsyncComplete); this.receiveEventArgs = new SocketAsyncEventArgs(); this.receiveEventArgs.Completed += new EventHandler<SocketAsyncEventArgs>(this.OnAsyncComplete); }
public TcpTransport(Socket socket, TcpTransportSettings transportSettings) : base() { this.socket = socket; this.socket.SendBufferSize = transportSettings.TcpBufferSize; this.socket.ReceiveBufferSize = transportSettings.TcpBufferSize; this.sendEventArgs = new SocketAsyncEventArgs(); this.sendEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(this.OnAsyncComplete); this.receiveEventArgs = new SocketAsyncEventArgs(); this.receiveEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(this.OnAsyncComplete); }
public TcpTransport(Socket socket, TcpTransportSettings transportSettings) : base("tcp") { this.socket = socket; this.socket.NoDelay = true; this.socket.SendBufferSize = 0; this.socket.ReceiveBufferSize = 0; this.localEndPoint = this.socket.LocalEndPoint; this.remoteEndPoint = this.socket.RemoteEndPoint; this.sendEventArgs = new TcpTransport.WriteAsyncEventArgs() { Transport = this }; this.sendEventArgs.Completed += TcpTransport.onWriteComplete; this.receiveEventArgs = new TcpTransport.ReadAsyncEventArgs(); this.receiveEventArgs.Completed += TcpTransport.onReadComplete; this.receiveEventArgs.Transport = this; }
protected OpenAsyncResult(AmqpStream parent, string address, bool listen, TimeSpan timeout, AsyncCallback callback, object state) : base(callback, state) { this.parent = parent; this.parent.isReceiver = listen; this.timeoutHelper = new TimeoutHelper(timeout); Uri addressUri = new Uri(address); this.parent.node = addressUri.PathAndQuery; int port = addressUri.Port; if (port == -1) { port = AmqpConstants.DefaultPort; } TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.TcpBacklog = 20; tcpSettings.TcpBufferSize = 4096; tcpSettings.SetEndPoint(addressUri.Host, port, listen); TransportSettings transportSettings = tcpSettings; this.Start(transportSettings); }
public TcpTransportListener(TcpTransportSettings transportSettings) { this.transportSettings = transportSettings; }
internal TcpTransportInitiator(TcpTransportSettings transportSettings) { this.transportSettings = transportSettings; }
public void Open() { int port = this.container.addressUri.Port; if (port == -1) { port = AmqpConstants.DefaultPort; } TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.TcpBacklog = 20; tcpSettings.TcpBufferSize = 4096; tcpSettings.SetEndPoint(this.container.addressUri.Host, port, true); TransportSettings transportSettings = tcpSettings; this.listener = transportSettings.CreateListener(); this.listener.Listen(this.OnAcceptTransport); }
public OpenContainerAsyncResult(Container parent, AsyncCallback callback, object state) : base(callback, state) { this.parent = parent; int port = this.parent.addressUri.Port; if (port == -1) { port = AmqpConstants.DefaultPort; } TcpTransportSettings tcpSettings = new TcpTransportSettings(); tcpSettings.TcpBacklog = 20; tcpSettings.TcpBufferSize = 4096; tcpSettings.SetEndPoint(this.parent.addressUri.Host, port, false); TransportSettings transportSettings = tcpSettings; TransportInitiator initiator = transportSettings.CreateInitiator(); TransportAsyncCallbackArgs args = new TransportAsyncCallbackArgs(); args.CompletedCallback = onTransport; args.UserToken = this; if (!initiator.ConnectAsync(TimeSpan.MaxValue, args)) { OnTransport(args); } }
public TcpTransportListener(TcpTransportSettings transportSettings) : base("tcp-listener") { this.acceptTransportLoop = new Action <object>(this.AcceptTransportLoop); this.transportSettings = transportSettings; }