/// <summary> /// Forces all clients to refresh his ProtectedFilterList with the given filter list /// </summary> /// <param name="protectedFilterList">List of the new ForbiddenFilters</param> public void RefreshProtectedFilterLists(IList<Filter> protectedFilterList) { _LastProtectedFilterList = protectedFilterList; NetworkPackage pack = new NetworkPackage(Command.RefreshProtectedFilterList, protectedFilterList); foreach (TcpClient client in Clients) Send(client, pack); }
/// <summary> /// Forces the client to refresh his Forbbiden FilterList with the given filter list /// </summary> /// <param name="forbiddenFilterList">List of the new ProtectedFilters</param> public void RefreshForbiddenFilterLists(IList<Filter> forbiddenFilterList) { _LastForbiddenFilterList = forbiddenFilterList; NetworkPackage pack = new NetworkPackage(Command.RefreshForbiddenFilterList, forbiddenFilterList); foreach (TcpClient client in Clients) Send(client, pack); }
/// <summary> /// Methode which will be invoke by incoming messages /// </summary> /// <param name="package">The The received package</param> protected override void DataReceived(NetworkPackage package) { switch (package.Cmd) { case Command.RefreshProtectedFilterList: IList<Filter> protectedList = package.Value as IList<Filter>; if (protectedList == null) throw new ArgumentException("Value must be of type 'IList<Filter>'"); if (ProtectedFilterListRefreshed != null) ProtectedFilterListRefreshed(protectedList); break; case Command.RefreshForbiddenFilterList: IList<Filter> forbiddenList = package.Value as IList<Filter>; if (forbiddenList == null) throw new ArgumentException("Value must be of type 'IList<Filter>'"); if (ForbiddenFilterListRefreshed != null) ForbiddenFilterListRefreshed(forbiddenList); break; default: throw new ArgumentException(string.Format("Coudn't handle '{0}'", package.Cmd)); } }
/// <summary> /// Methode which will be invoke by incoming messages /// </summary> /// <param name="package">The The received package</param> protected override void DataReceived(NetworkPackage package) { switch (package.Cmd) { case Command.SaveProtocol: Protocol protocol = package.Value as Protocol; if (protocol == null) throw new ArgumentException("Value must be of type 'Protocol'"); if (ProtocolReceived != null) ProtocolReceived((Protocol)package.Value); break; default: throw new ArgumentException(string.Format("Coudn't handle '{0}'", package.Cmd)); } }
private void TaskForceServer_NewClientConnected(TcpClient newClient) { NetworkPackage pack; pack = new NetworkPackage(Command.RefreshProtectedFilterList, _LastProtectedFilterList); Send(newClient, pack); pack = new NetworkPackage(Command.RefreshForbiddenFilterList, _LastForbiddenFilterList); Send(newClient, pack); }
/// <summary> /// Constructor /// </summary> /// <param name="client">The client for the communication</param> /// <param name="package">The package to send</param> public SendParameters(TcpClient client, NetworkPackage package) { Package = package; Client = client; }
/// <summary> /// Methode which will be invoke by incoming messages /// </summary> /// <param name="package">The The received package</param> protected abstract void DataReceived(NetworkPackage package);
/// <summary> /// Sends an object to the client /// </summary> /// <param name="client">The receiver</param> /// <param name="package">The package to send</param> protected void Send(TcpClient client, NetworkPackage package) { ThreadPool.QueueUserWorkItem(Send, new SendParameters(client, package)); }
/// <summary> /// Sends an Protocol object to the server /// </summary> /// <param name="protocol">The Protocol to send</param> public void SaveProtocol(Protocol protocol) { NetworkPackage pack = new NetworkPackage(Command.SaveProtocol, protocol); Send(pack); }