private IResponse WaitNormalState(IMessage message) { while (!(this.replicaState.State is NormalStateMessageProcessor)) { this.replicaState.HandlerStateChanged.WaitOne(); } return(message.Accept(this.replicaState.State)); }
/// <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()); }
public IResponse ProcessRequest(IMessage message) { return(message.Accept(this.ReplicaState.State)); }