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; }; }
public Waiter WaitForOneShotEvent <T>(OneShotEvent <T> oneShotEvent, Action <T> paramGetter) { return(new OneShotEventWaiter <T>(oneShotEvent, paramGetter)); }
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; }