private void OnClientDisconnected(ITcpProtocolClient client_) { UnsubscribeFromClientEvents(client_); _clientList.Remove(client_); ClientDisconnected?.Invoke(this, client_); }
private void OnClientConnected(ITcpProtocolClient client_) { _clientList.Add(client_); SubscribeToClientEvents(client_); ClientConnected?.Invoke(this, client_); }
/// <summary> /// Remove a client from this list /// </summary> /// <param name="client_"></param> public void Remove(ITcpProtocolClient client_) { lock (_lock) { _list.Remove(client_); } }
/// <summary> /// Add a client to the list. /// </summary> /// <param name="client_"></param> public void Add(ITcpProtocolClient client_) { lock (_lock) { _list.Add(client_); } }
/// <summary> /// Get an enumeration of all the clients in this list /// </summary> /// <returns></returns> public IEnumerable <ITcpProtocolClient> GetClients() { lock (_lock) { var clients = new ITcpProtocolClient[_list.Count]; _list.CopyTo(clients); return(clients); } }