public FahClient(IMessageConnection messageConnection) { if (messageConnection == null) { throw new ArgumentNullException("messageConnection"); } _messageConnection = messageConnection; _slots = new List <SlotModel>(); _slotsLock = new ReaderWriterLockSlim(); _fahLog = FahLog.Create(FahLogType.FahClient); _messages = new MessageReceiver(); _messageConnection.MessageReceived += MessageConnectionMessageReceived; _messageConnection.UpdateFinished += MessageConnectionUpdateFinished; _messageConnection.ConnectedChanged += MessageConnectionConnectedChanged; }