public TransportConnectionFactory( ITransmissionConnectionFactory transmissionConnectionFactory, ITransportProtocolSerializationProvider serializationProvider) { _transmissionConnectionFactory = transmissionConnectionFactory; _serializer = serializationProvider.GetSerializer(); _deserializer = serializationProvider.GetDeserializer(TransportHeaderPool.Instance); }
private Task RunSenderTaskAsync(ITransmissionConnectionFactory streamFactory, Func <IMessagingSendProcessor, Task> action) { return(TaskRunner.RunInBackground(async() => { using (var serverStream = await streamFactory.CreateAsync().ConfigureAwait(false)) { var sender = new MessagingSendProcessor(serverStream, SerializationProvider.GetSerializer()); await action(sender).ConfigureAwait(false); sender.Out.TryComplete(); await sender.Out.Completion.ConfigureAwait(false); Log.Trace("Waiting for completion of connection {0}", serverStream.Id); await serverStream.Completion.ConfigureAwait(false); } })); }
private Task RunReceiverTaskAsync(ITransmissionConnectionFactory streamFactory, Func <IMessagingReceiveProcessor, Task> action) { return(TaskRunner.RunInBackground(async() => { using (var serverStream = await streamFactory.CreateAsync().ConfigureAwait(false)) { var receiver = new MessagingReceiveProcessor(serverStream, SerializationProvider.GetDeserializer(TransportHeaderPool.Instance)); await action(receiver).ConfigureAwait(false); await receiver.In.Completion.ConfigureAwait(false); Log.Trace("Completing server stream for connection {0}", serverStream.Id); serverStream.Out.TryComplete(); await serverStream.Completion.ConfigureAwait(false); } })); }
public MessagingTests() { _server = RegisterDisposable(new PipeTransmissionServer(Directory.GetCurrentDirectory())); _server.StartAsync().GetResult(); _clientFactory = new PipeTransmissionClient(Directory.GetCurrentDirectory()); }