/// <summary> /// /// </summary> /// <param name="messageStreamEndpoint"></param> /// <param name="decrypterFactory"></param> public LiveMessageReader(IMessageStreamEndpoint messageStreamEndpoint, IDecrypterFactory decrypterFactory) { Guard.NotNull(messageStreamEndpoint, "messageStreamEndpoint"); Guard.NotNull(decrypterFactory, "decrypterFactory"); MessageStreamEndpoint = messageStreamEndpoint; DecrypterFactory = decrypterFactory; QueuedMessages = new Queue<Message>(); SessionType = SessionType.None; State = LiveMessageReaderState.Uninitialised; StateEngine = new LiveMessageReaderStateEngine(this); MessageTranslator = new LiveMessageTranslator(); }