/// <summary> /// The listeners, accepters and connecters events are routed to this method. /// </summary> /// <param name="worker">The worker that raised an event.</param> /// <param name="data">relvant event data</param> void BasicServers_OnServerNotifyEvent(BasicWorker worker, object data) { NetworkServerClientWorker.NetworkClientNotification incommingEvent = null; if (data.GetType() == typeof(NetworkServerClientWorker.NetworkClientNotification)) { incommingEvent = (NetworkServerClientWorker.NetworkClientNotification)data; switch (incommingEvent.EventType) { case NetworkClientBase.ClientEventTypeEnum.None: break; case NetworkClientBase.ClientEventTypeEnum.Connected: break; case NetworkClientBase.ClientEventTypeEnum.Accepted: NetworkServerClientAccepter accepter = (NetworkServerClientAccepter)incommingEvent.EventData; accepter.RequiredLatency = newAcceptersLatency; accepters.Workers.Add(accepter); break; case NetworkClientBase.ClientEventTypeEnum.MessageSent: break; case NetworkClientBase.ClientEventTypeEnum.RawDataRecieved: break; case NetworkClientBase.ClientEventTypeEnum.MessageRecieved: break; case NetworkClientBase.ClientEventTypeEnum.Disconnected: switch (worker.GetType().Name) { case "NetworkServerClientListener": //Controlled by user of this class. break; case "NetworkServerClientAccepter": //This class add it so it should remove it. accepters.Workers.Remove(worker); break; case "NetworkServerClientConnecter"://Controlled by user of this class. break; } break; case NetworkClientBase.ClientEventTypeEnum.Error: break; } } OnServerNotify((NetworkServerClientWorker)worker, incommingEvent); }