Exemple #1
0
        void OnClientConnected(object sender, TCPPacketConnection connection)
        {
            connection.Logger = Logger;

            if (!Authenticate(out string username, connection))
            {
                Logger.Log(LogLevel.Error, "Authentication failed from {0}", connection.Remote);
                connection.Kill();
                return;
            }

            HandleVerifiedConnection(Accounts.GetElement(username), connection);

            connection.OnDisconnect.Event += (eventSender, arguments) => Accounts.ReleaseElement(username);
            OneShotEvent <object, object> .EventHandle disposeHandler = (object disposeSender, object disposer) => { connection.Dispose(); };
            DisposeCalled.Event           += disposeHandler;
            connection.OnDisconnect.Event += (object disconnectSender, EndPoint endpoint) => { DisposeCalled.Event -= disposeHandler; };
        }
Exemple #2
0
 public Waiter WaitForOneShotEvent <T>(OneShotEvent <T> oneShotEvent, Action <T> paramGetter)
 {
     return(new OneShotEventWaiter <T>(oneShotEvent, paramGetter));
 }
Exemple #3
0
 public Waiter WaitForOneShotEvent(OneShotEvent oneShotEvent)
 {
     return(new OneShotEventWaiter(oneShotEvent));
 }
 public OneShotEventWaiter(OneShotEvent oneShotEvent)
 {
     oneShotEvent.Add(OnCompleted);
     this.oneShotEvent = oneShotEvent;
 }
 public OneShotEventWaiter(OneShotEvent oneShotEvent)
 {
     oneShotEvent.Add(OnCompleted);
     this.oneShotEvent = oneShotEvent;
 }