public StreamedFramingRequestChannel(ChannelManagerBase factory, IConnectionOrientedTransportChannelFactorySettings settings, EndpointAddress remoteAddress, Uri via, IConnectionInitiator connectionInitiator, ConnectionPool connectionPool) : base(factory, remoteAddress, via, settings.ManualAddressing) { _settings = settings; _connectionInitiator = connectionInitiator; _connectionPool = connectionPool; _messageEncoder = settings.MessageEncoderFactory.Encoder; _upgrade = settings.Upgrade; }
private bool GetUpgradeAndConnectionPool(out StreamUpgradeProvider upgradeCopy, out ConnectionPool poolCopy) { if (_upgrade != null || _connectionPool != null) { lock (ThisLock) { if (_upgrade != null || _connectionPool != null) { upgradeCopy = _upgrade; poolCopy = _connectionPool; _upgrade = null; _connectionPool = null; return(true); } } } upgradeCopy = null; poolCopy = null; return(false); }
protected override void OnOpening() { base.OnOpening(); _connectionPool = GetConnectionPool(); // returns an already opened pool Contract.Assert(_connectionPool != null, "ConnectionPool should always be found"); }
public ClientFramingDuplexSessionChannel(ChannelManagerBase factory, IConnectionOrientedTransportChannelFactorySettings settings, EndpointAddress remoteAddress, Uri via, IConnectionInitiator connectionInitiator, ConnectionPool connectionPool, bool exposeConnectionProperty, bool flowIdentity) : base(factory, settings, remoteAddress, via, exposeConnectionProperty) { _settings = settings; MessageEncoder = settings.MessageEncoderFactory.CreateSessionEncoder(); _upgrade = settings.Upgrade; _flowIdentity = flowIdentity; _connectionPoolHelper = new DuplexConnectionPoolHelper(this, connectionPool, connectionInitiator); }
internal abstract void ReleaseConnectionPool(ConnectionPool pool, TimeSpan timeout);
public ConnectionPoolHelper(ConnectionPool connectionPool, IConnectionInitiator connectionInitiator, Uri via) { this.connectionInitiator = connectionInitiator; this.connectionPool = connectionPool; this.via = via; }
public ConnectionPoolHelper(ConnectionPool connectionPool, IConnectionInitiator connectionInitiator, Uri via) { _connectionInitiator = connectionInitiator; _connectionPool = connectionPool; _via = via; }
internal override void ReleaseConnectionPool(ConnectionPool pool, TimeSpan timeout) { connectionPoolRegistry.Release(pool, timeout); }
public DuplexConnectionPoolHelper(ClientFramingDuplexSessionChannel channel, ConnectionPool connectionPool, IConnectionInitiator connectionInitiator) : base(connectionPool, connectionInitiator, channel.Via) { this.channel = channel; this.preamble = channel.CreatePreamble(); }
internal override void ReleaseConnectionPool(ConnectionPool pool, TimeSpan timeout) { NamedPipeChannelFactory <TChannel> .connectionPoolRegistry.Release(pool, timeout); }