public Listener( IListenerLogger logger, InlineSocketsOptions options, INetworkProvider networkProvider) { _logger = logger; _options = options; _networkProvider = networkProvider; }
public SimpleListener( ISQS sqs, Func <Message, Task> messageHandler, CancellationToken ctx, IListenerLogger logger) { _sqs = sqs; _messageHandler = messageHandler; _ctx = ctx; _logger = logger; }
public Transport( IListenerLogger logger, InlineSocketsOptions options, INetworkProvider networkProvider, IEndPointInformation endPointInformation, IConnectionDispatcher dispatcher) { _listener = new Listener(logger, options, networkProvider); _logger = logger; _endPointInformation = endPointInformation; _dispatcher = dispatcher; }
public InlineSocketsOptionsDefaults( IListenerLogger listenerLogger, IConnectionLogger connectionLogger, INetworkProvider networkProvider) { _configure = options => { #if NETSTANDARD2_0 var memoryPool = Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.KestrelMemoryPool.Create(); #else var socketTransportOptions = new Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions(); var socketTransportOptionsTypeInfo = socketTransportOptions.GetType().GetTypeInfo(); var memoryPoolFactoryProperty = socketTransportOptionsTypeInfo.GetDeclaredProperty("MemoryPoolFactory"); var memoryPoolFactory = memoryPoolFactoryProperty.GetValue(socketTransportOptions) as Func <MemoryPool <byte> >; var memoryPool = memoryPoolFactory.Invoke(); #endif options.MemoryPool = memoryPool; options.CreateListener = CreateListener; options.CreateConnection = CreateConnection; options.CreateSocketPipelines = CreateSocketPipelines; options.WrapTransportPipelines = WrapTransportPipelines; Listener CreateListener() { return(new Listener(listenerLogger, options, networkProvider)); } IConnection CreateConnection(INetworkSocket socket) { return(new Connection(connectionLogger, options, socket)); } (PipeReader input, PipeWriter output) CreateSocketPipelines(IConnection connection, INetworkSocket socket) { var input = new SocketPipeReader(connectionLogger, options, connection, socket); var output = new SocketPipeWriter(connectionLogger, options, connection, socket); return(input, output); } static IDuplexPipe WrapTransportPipelines(IConnection connection, IDuplexPipe transport) { var input = new CancelNotificationPipeReader(transport.Input, connection.CancelPendingRead); return(new DuplexPipe(input, transport.Output)); } }; }
public TransportFactory( IListenerLogger logger, IOptions <InlineSocketsOptions> options, INetworkProvider networkProvider) { _create = Create; ITransport Create( IEndPointInformation endPointInformation, IConnectionDispatcher dispatcher) { return(new Transport( logger, options.Value, networkProvider, endPointInformation, dispatcher)); } }