//! \~\file piclientserver_client.h //! \~\ingroup ClientServer //! \brief //! \~english Client-side and server-side client connection classes //! \~russian Классы клиентского подключения и серверного представления клиента /* PIP - Platform Independent Primitives Ivan Pelipenko peri4ko@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef piclientserver_client_H #define piclientserver_client_H #include "piclientserver_client_base.h" namespace PIClientServer { // ServerClient //! \~\ingroup ClientServer //! \~\brief //! \~english Server-side representation of one accepted client connection. //! \~russian Серверное представление одного принятого клиентского соединения. //! \details //! \~english Server-side client representation. Created and managed by Server. Used to communicate with remote clients connected to the //! server. //! \~russian Представление клиента на стороне сервера. Создаётся и управляется сервером. Используется для коммуникации с удалёнными //! клиентами, подключёнными к серверу. class PIP_CLIENT_SERVER_EXPORT ServerClient: public ClientBase { friend class Server; NO_COPY_CLASS(ServerClient); public: //! \~english Constructs an unbound server-side client object. //! \~russian Создает непривязанный объект серверного клиента. ServerClient() {} protected: //! \~english Called right before the server deletes this client object. //! \~russian Вызывается непосредственно перед удалением этого объекта сервером. virtual void aboutDelete() {} private: void createForServer(Server * parent, PIEthernet * tcp_); }; // Client //! \~\ingroup ClientServer //! \~\brief //! \~english Active client connection that initiates a connection to a server. //! \~russian Активное клиентское соединение, которое само подключается к серверу. //! \details //! \~english Client implementation for connecting to servers. Provides TCP connection to remote server with diagnostics and packet //! streaming support. //! \~russian Реализация клиента для подключения к серверам. Обеспечивает TCP-соединение с удалённым сервером с поддержкой диагностики и //! потоковой передачи пакетов. class PIP_CLIENT_SERVER_EXPORT Client: public ClientBase { NO_COPY_CLASS(Client); public: //! \~english Constructs a client ready to connect to a remote server. //! \~russian Создает клиент, готовый к подключению к удаленному серверу. Client(); //! \~english Destroys the client and closes its connection if needed. //! \~russian Уничтожает клиента и при необходимости закрывает его соединение. ~Client(); //! \~english Connects to the server at address "addr". //! \~russian Подключается к серверу по адресу "addr". void connect(PINetworkAddress addr); protected: private: }; } // namespace PIClientServer #endif