Ejemplo n.º 1
0
        public Session(int sessionId, ZerioConfiguration configuration, CompletionQueues completionQueues)
        {
            Id                = sessionId;
            _configuration    = configuration;
            _completionQueues = completionQueues;
            _receivingBuffer  = new UnmanagedRioBuffer <RioBufferSegment>(configuration.ReceivingBufferCount, _configuration.ReceivingBufferLength);

            _messageFramer = new MessageFramer(configuration.FramingBufferLength);
            _messageFramer.MessageFramed += OnMessageFramed;
        }
Ejemplo n.º 2
0
        public Session(int sessionId, InternalZerioConfiguration configuration, CompletionQueues completionQueues)
        {
            Id                = sessionId;
            _configuration    = configuration;
            _completionQueues = completionQueues;
            _receivingBuffer  = new UnmanagedRioBuffer <RioBufferSegment>(configuration.ReceivingBufferCount, _configuration.ReceivingBufferLength);

            _messageFramer = new MessageFramer(configuration.FramingBufferLength);
            _messageFramer.MessageFramed += OnMessageFramed;

            SendingBatch = new SessionSendingBatch(configuration.SendingBufferLength);
            Conflater    = new SendingRequestConflater(sessionId, configuration.SendingBufferLength);
        }
Ejemplo n.º 3
0
        public RioSession(int sessionId, ISessionConfiguration configuration, RioCompletionQueue sendingCompletionQueue, RioCompletionQueue receivingCompletionQueue, SerializationEngine serializationEngine)
        {
            Id             = sessionId;
            _configuration = configuration;

            _sendingCompletionQueue   = sendingCompletionQueue;
            _receivingCompletionQueue = receivingCompletionQueue;

            _sendingBufferManager   = RioBufferManager.Allocate(configuration.SendingBufferCount, _configuration.SendingBufferLength);
            _receivingBufferManager = RioBufferManager.Allocate(configuration.ReceivingBufferCount, _configuration.ReceivingBufferLength);

            _messageFramer = new MessageFramer(_receivingBufferManager);

            _threadLocalReceivingContext = new ThreadLocal <ReceivingContext>(() => new ReceivingContext(serializationEngine.Encoding));
            _threadLocalSendingContext   = new ThreadLocal <SendingContext>(() => new SendingContext(configuration, _sendingBufferManager, serializationEngine.Encoding));

            _serializationEngine = serializationEngine;
        }