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();
}