public InMemoryTransportConnectionFactory(InMemoryTransportConnectionHub hub, ILoggerFactory loggerFactory, SharedMemoryPool memoryPool) { _hub = hub; _loggerFactory = loggerFactory; _memoryPool = memoryPool; _localEndpoint = new IPEndPoint(IPAddress.Loopback, ThreadSafeRandom.Next(1024, ushort.MaxValue - 1024)); }
private static Func <IServiceProvider, object, IConnectionListenerFactory> CreateInMemoryConnectionListenerFactory(InMemoryTransportConnectionHub hub) { return((IServiceProvider sp, object key) => { var loggerFactory = sp.GetRequiredService <ILoggerFactory>(); var sharedMemoryPool = sp.GetRequiredService <SharedMemoryPool>(); return new InMemoryTransportListener(hub, loggerFactory, sharedMemoryPool); }); }
public static IClientBuilder UseInMemoryConnectionTransport(this IClientBuilder clientBuilder, InMemoryTransportConnectionHub hub) { clientBuilder.ConfigureServices(services => { services.AddSingletonKeyedService <object, IConnectionFactory>(ClientOutboundConnectionFactory.ServicesKey, CreateInMemoryConnectionFactory(hub)); }); return(clientBuilder); }
public static ISiloBuilder UseInMemoryConnectionTransport(this ISiloBuilder siloBuilder, InMemoryTransportConnectionHub hub) { siloBuilder.ConfigureServices(services => { services.AddSingletonKeyedService <object, IConnectionFactory>(SiloConnectionFactory.ServicesKey, CreateInMemoryConnectionFactory(hub)); services.AddSingletonKeyedService <object, IConnectionListenerFactory>(SiloConnectionListener.ServicesKey, CreateInMemoryConnectionListenerFactory(hub)); services.AddSingletonKeyedService <object, IConnectionListenerFactory>(GatewayConnectionListener.ServicesKey, CreateInMemoryConnectionListenerFactory(hub)); }); return(siloBuilder); }