void Connection::internalSend(const OutputMessage_ptr& msg) { protocol->onSendMessage(msg); try { writeTimer.expires_from_now(boost::posix_time::seconds(Connection::write_timeout)); writeTimer.async_wait(std::bind(&Connection::handleTimeout, std::weak_ptr<Connection>(shared_from_this()), std::placeholders::_1)); boost::asio::async_write(socket, boost::asio::buffer(msg->getOutputBuffer(), msg->getLength()), std::bind(&Connection::onWriteOperation, shared_from_this(), std::placeholders::_1)); } catch (boost::system::system_error& e) { std::cout << "[Network error - Connection::internalSend] " << e.what() << std::endl; close(FORCE_CLOSE); } }
void Connection::internalSend(OutputMessage_ptr msg) { try { ++m_pendingWrite; m_writeTimer.expires_from_now(boost::posix_time::seconds(Connection::write_timeout)); m_writeTimer.async_wait( std::bind(&Connection::handleWriteTimeout, std::weak_ptr<Connection>(shared_from_this()), std::placeholders::_1)); boost::asio::async_write(getHandle(), boost::asio::buffer(msg->getOutputBuffer(), msg->getLength()), std::bind(&Connection::onWriteOperation, shared_from_this(), msg, std::placeholders::_1)); } catch (boost::system::system_error& e) { if (m_logError) { std::cout << "[Network error - Connection::internalSend] " << e.what() << std::endl; m_logError = false; } } }