예제 #1
0
        internal Connection(TcpClient client, ProtocolConfiguration configuration,
                            IInternalServiceManager <IConnection> services = null, ISslStreamFactory sslFactory = null,
                            IConnectionData data = null, List <InternalPayloadDispatchHandler> dispatcher       = null) : this(
                configuration.PayloadEncoder.Clone(), configuration.PayloadDecoder.Clone())
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            if (client == null || !client.Connected)
            {
                throw new ArgumentException(nameof(client));
            }

            Client = client;

            SslMode = configuration.SslMode;
            CustomOutcomingMessageQueue = configuration.CustomOutcomingMessageQueue;
            CustomIncomingMessageQueue  = configuration.CustomIncomingMessageQueue;
            _services       = services; // ?? BasicServiceManager<IConnection>.Empty;
            _sslFactory     = sslFactory;
            Data            = data;
            DispatchPayload = dispatcher ?? new List <InternalPayloadDispatchHandler>(0);
            _readAsync      = configuration.ReadAsync;
        }
예제 #2
0
 public DfsClient(ISslStreamFactory sslFactory, TcpClient client, string path = "",
                  long cacheSize = 1024 * 1024 * 1024 * 2L, int cacheLookupSize = 100_000, long minFree = 1024 * 1024 * 50)
 public IConnectionBuilder UseSsl(ISslStreamFactory factory)
 {
     _sslFactory = factory;
     return(this);
 }