예제 #1
0
 private IResponse WaitNormalState(IMessage message)
 {
     while (!(this.replicaState.State is NormalStateMessageProcessor))
     {
         this.replicaState.HandlerStateChanged.WaitOne();
     }
     return(message.Accept(this.replicaState.State));
 }
예제 #2
0
        /// <summary>
        /// Send a message to the device
        /// </summary>
        /// <param name="message"></param>
        public void Send(IMessage message)
        {
            if (!Socket.Connected)
            {
                _logger.LogError($"Failed to send {message} on not connected socket");
                return;
            }

            _handler.Handle(message);
            _stream.WriteAsync(message.Accept(_unparser).ToArray());
        }
예제 #3
0
 public IResponse ProcessRequest(IMessage message)
 {
     return(message.Accept(this.ReplicaState.State));
 }