예제 #1
0
 public void SetListener(IRemoteConsoleClientListener listener)
 {
     lock (_locker)
     {
         _listener.SetListener(listener);
     }
 }
예제 #2
0
        public void PumpEvents()
        {
            List <LogMessage> messages     = null;
            List <string>     autoComplete = null;
            bool sendConn = false;
            bool isConn   = false;
            IRemoteConsoleClientListener l = null;

            lock (_locker)
            {
                l        = _listener.Listener;
                messages = new List <LogMessage>(_messages);
                _messages.Clear();
                if (_autoCompleteIsDone && !_listener.AutoCompleteSent)
                {
                    autoComplete = new List <string>(_autoComplete);
                    _autoComplete.Clear();
                    _listener.AutoCompleteSent = true;
                }
                if (_isConnected != _listener.Connected && !_resetConnection)
                {
                    _listener.Connected = _isConnected;
                    sendConn            = true;
                    isConn = _isConnected;
                }
            }
            if (l != null)
            {
                if (sendConn)
                {
                    if (isConn)
                    {
                        l.OnConnected();
                    }
                    else
                    {
                        l.OnDisconnected();
                    }
                }
                if (messages != null)
                {
                    foreach (var message in messages)
                    {
                        l.OnLogMessage(message);
                    }
                }
                if (autoComplete != null)
                {
                    l.OnAutoCompleteDone(autoComplete);
                }
            }
        }
예제 #3
0
 public void SetListener(IRemoteConsoleClientListener listener)
 {
     Listener = listener;
     Reset();
 }