diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-07-30 04:33:06 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2015-07-30 04:33:06 +0300 |
commit | 5c48d14a9ab31a31f7f17c715dcf5847251dd204 (patch) | |
tree | 9a3a8853ffade36763838d90458f7b92f8a473e4 /client-qt/udm-client-qt/client_session.cpp | |
parent | 48fc9e1f4bbfe9629cd85f833620140bf63f6cbd (diff) |
server:
implementing network io
client-qt:
implementing network io
Diffstat (limited to 'client-qt/udm-client-qt/client_session.cpp')
-rw-r--r-- | client-qt/udm-client-qt/client_session.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/client-qt/udm-client-qt/client_session.cpp b/client-qt/udm-client-qt/client_session.cpp new file mode 100644 index 0000000..ed22fad --- /dev/null +++ b/client-qt/udm-client-qt/client_session.cpp @@ -0,0 +1,38 @@ +#include "client_session.h" +#include <boost/bind.hpp> +#include <boost/log/trivial.hpp> + +client_session::client_session(QObject *parent, boost::asio::io_service *io_service) : QObject(parent), io_service_(*io_service), socket_(*io_service) +{ + +} + + +tcp::socket& client_session::socket() +{ + return socket_; +} + +void client_session::connect(std::string &host, int port) +{ + //TODO: settings for connection timeout + boost::asio::ip::tcp::resolver r(io_service_); + boost::asio::ip::tcp::endpoint ep; + ep.port(port); + ep.address(boost::asio::ip::address::from_string(host)); + socket_.async_connect(ep, boost::bind(&client_session::connect_handler, this, boost::asio::placeholders::error)); +} + +void client_session::connect_handler(const boost::system::error_code &e) +{ + BOOST_LOG_TRIVIAL(debug)<<__FILE__<<":"<<__LINE__<<"\t"<<typeid(this).name()<<"::"<<__func__; + if(e) + { + //TODO: settings for reconnect count and timeout + BOOST_LOG_TRIVIAL(error)<<__FILE__<<":"<<__LINE__<<"\t"<<typeid(this).name()<<"::"<<__func__<<"\terror: "<<e.message(); + } + else + { + //TODO: succesfule connection event + } +} |