示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RingMasterServer"/> class.
        /// </summary>
        /// <param name="protocol">Protocol used for communication</param>
        /// <param name="instrumentation">Instrumentation consumer</param>
        /// <param name="cancellationToken">Token to observe for cancellation signal</param>
        public RingMasterServer(ICommunicationProtocol protocol, IRingMasterServerInstrumentation instrumentation, CancellationToken cancellationToken)
        {
            this.protocol          = protocol ?? throw new ArgumentNullException(nameof(protocol));
            this.instrumentation   = instrumentation;
            this.cancellationToken = cancellationToken;

            QueuedWorkItemPool.Default.Initialize(Environment.ProcessorCount * 2, cancellationToken);
        }
示例#2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Session"/> class.
 /// </summary>
 /// <param name="server">Ring Master server object</param>
 /// <param name="sessionId">Session ID</param>
 /// <param name="onInitSession">Callback when the session is initialized</param>
 /// <param name="connection">Secure Transport connection object</param>
 /// <param name="protocol">Protocol object for sending/receiving responses</param>
 /// <param name="instrumentation">Instrumentation object</param>
 public Session(
     RingMasterServer server,
     ulong sessionId,
     Func<RequestInit, IRingMasterRequestHandlerOverlapped> onInitSession,
     IConnection connection,
     ICommunicationProtocol protocol,
     IRingMasterServerInstrumentation instrumentation)
 {
     this.server = server;
     this.sessionId = sessionId;
     this.connection = connection;
     this.onInitSession = onInitSession;
     this.protocol = protocol;
     this.instrumentation = instrumentation;
 }