summaryrefslogtreecommitdiff
path: root/src/lib/dcpomatic_socket.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dcpomatic_socket.cc')
-rw-r--r--src/lib/dcpomatic_socket.cc32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/lib/dcpomatic_socket.cc b/src/lib/dcpomatic_socket.cc
index 8f8f639cc..83ab072d2 100644
--- a/src/lib/dcpomatic_socket.cc
+++ b/src/lib/dcpomatic_socket.cc
@@ -63,7 +63,7 @@ Socket::check ()
void
Socket::connect (boost::asio::ip::tcp::endpoint endpoint)
{
- _deadline.expires_from_now (boost::posix_time::seconds (_timeout));
+ set_deadline_from_now(_timeout);
boost::system::error_code ec = boost::asio::error::would_block;
_socket.async_connect (endpoint, boost::lambda::var(ec) = boost::lambda::_1);
do {
@@ -95,7 +95,7 @@ Socket::connect (boost::asio::ip::tcp::endpoint endpoint)
void
Socket::write (uint8_t const * data, int size)
{
- _deadline.expires_from_now (boost::posix_time::seconds (_timeout));
+ set_deadline_from_now(_timeout);
boost::system::error_code ec = boost::asio::error::would_block;
boost::asio::async_write (_socket, boost::asio::buffer (data, size), boost::lambda::var(ec) = boost::lambda::_1);
@@ -115,6 +115,13 @@ Socket::write (uint8_t const * data, int size)
void
+Socket::write(std::string const& str)
+{
+ write(reinterpret_cast<uint8_t const*>(str.c_str()), str.size());
+}
+
+
+void
Socket::write (uint32_t v)
{
v = htonl (v);
@@ -129,7 +136,7 @@ Socket::write (uint32_t v)
void
Socket::read (uint8_t* data, int size)
{
- _deadline.expires_from_now (boost::posix_time::seconds (_timeout));
+ set_deadline_from_now(_timeout);
boost::system::error_code ec = boost::asio::error::would_block;
boost::asio::async_read (_socket, boost::asio::buffer (data, size), boost::lambda::var(ec) = boost::lambda::_1);
@@ -259,3 +266,22 @@ Socket::set_send_buffer_size (int size)
_send_buffer_size = size;
}
+
+void
+Socket::set_deadline_from_now(int seconds)
+{
+ _deadline.expires_from_now(boost::posix_time::seconds(seconds));
+}
+
+void
+Socket::run()
+{
+ _io_service.run_one();
+}
+
+void
+Socket::close()
+{
+ _socket.close();
+}
+