diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-07-28 05:36:31 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-07-28 05:36:31 +0300 |
commit | 48fc9e1f4bbfe9629cd85f833620140bf63f6cbd (patch) | |
tree | 12ef82e0a21ac0b17682638f6b9cdeaedf39a4f7 /server/include/server.h | |
parent | a076f8228ff6fe8a2f9b7ac6634b46fb598fd711 (diff) |
missed files
Diffstat (limited to 'server/include/server.h')
-rw-r--r-- | server/include/server.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/server/include/server.h b/server/include/server.h new file mode 100644 index 0000000..e672bc3 --- /dev/null +++ b/server/include/server.h @@ -0,0 +1,65 @@ +/* + Copyright © 2015 Gluzskiy Alexandr (sss) + + This file is part of Unknown Download Manager (UDM). + + UDM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + UDM 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with UDM. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#ifndef SERVER_H +#define SERVER_H + +#include <boost/asio.hpp> + +class client_msg; +class server_msg; + +class server_session +{ + public: + server_session(boost::asio::io_service &s); + void run(); + void send_message(server_msg *msg); + boost::asio::ip::tcp::socket& socket(); + virtual ~server_session(); + protected: + private: + void handle_read(const boost::system::error_code& error, size_t bytes_transferred); + void handle_write(const boost::system::error_code& error); + void handle_write_no_read(const boost::system::error_code& error); + void handle_command(client_msg *msg); + + const int buf_size = 512; + char *recv_data_; + boost::asio::ip::tcp::socket socket_; +}; + +class server +{ +public: + server(boost::asio::io_service& io_service, short port); + +private: + void start_accept(); + void handle_accept(server_session* new_session, const boost::system::error_code& error); + + boost::asio::io_service& io_service_; + boost::asio::ip::tcp::acceptor acceptor_; +}; + + + +#endif // SERVER_H |