This avoids some boilerplate.
ArrayData
DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) const
{
- boost::asio::io_service io_service;
- boost::asio::ip::tcp::resolver resolver (io_service);
- boost::asio::ip::tcp::resolver::query query(serv.host_name(), fmt::to_string(ENCODE_FRAME_PORT));
- boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
-
auto socket = make_shared<Socket>(timeout);
socket->set_send_buffer_size (512 * 1024);
- socket->connect (*endpoint_iterator);
+ socket->connect(serv.host_name(), ENCODE_FRAME_PORT);
/* Collect all XML metadata */
xmlpp::Document doc;
#include "dcpomatic_log.h"
#include "dcpomatic_socket.h"
#include "exceptions.h"
+#include <fmt/format.h>
#include <boost/bind/bind.hpp>
#include <boost/lambda/lambda.hpp>
#include <iostream>
using std::shared_ptr;
+using std::string;
using std::weak_ptr;
}
+void
+Socket::connect(string host_name, int port)
+{
+ boost::asio::ip::tcp::resolver resolver(_io_service);
+ boost::asio::ip::tcp::resolver::query query(host_name, fmt::to_string(port));
+ connect(*resolver.resolve(query));
+}
+
+
+void
+Socket::connect(boost::asio::ip::address address, int port)
+{
+ connect(boost::asio::ip::tcp::endpoint(address, port));
+}
+
+
/** Blocking write.
* @param data Buffer to write.
* @param size Number of bytes to write.
}
void set_send_buffer_size (int size);
- void connect (boost::asio::ip::tcp::endpoint);
+ void connect(std::string host_name, int port);
+ void connect(boost::asio::ip::address address, int port);
void write (uint32_t n);
void write (uint8_t const * data, int size);
bool check_read_digest ();
void start_write_digest ();
void finish_write_digest ();
+ void connect(boost::asio::ip::tcp::endpoint);
boost::asio::io_service _io_service;
boost::asio::deadline_timer _deadline;
try {
auto socket = make_shared<Socket>();
- socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), MAIN_SERVER_PRESENCE_PORT));
+ socket->connect(_broadcast.send_endpoint.address(), MAIN_SERVER_PRESENCE_PORT);
socket->write (xml.bytes() + 1);
socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1);
} catch (...) {
try {
auto socket = make_shared<Socket>();
- socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), BATCH_SERVER_PRESENCE_PORT));
+ socket->connect(_broadcast.send_endpoint.address(), BATCH_SERVER_PRESENCE_PORT);
socket->write (xml.bytes() + 1);
socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1);
} catch (...) {
*/
for (int i = 0; i < 8; ++i) {
try {
- boost::asio::io_service io_service;
- boost::asio::ip::tcp::resolver resolver (io_service);
- boost::asio::ip::tcp::resolver::query query("127.0.0.1", fmt::to_string(port));
- boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
Socket socket (5);
- socket.connect (*endpoint_iterator);
+ socket.connect("127.0.0.1", port);
DCPOMATIC_ASSERT (_film->directory ());
socket.write (message.length() + 1);
socket.write ((uint8_t *) message.c_str(), message.length() + 1);
TestServer server(false);
server.expect (13);
- boost::asio::io_service io_service;
- tcp::resolver resolver (io_service);
- tcp::resolver::query query("127.0.0.1", fmt::to_string(TEST_SERVER_PORT));
- tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
-
auto socket = make_shared<Socket>();
- socket->connect (*endpoint_iterator);
+ socket->connect("127.0.0.1", TEST_SERVER_PORT);
send (socket, "Hello world!");
server.await ();
TestServer server(false);
server.expect (13 + 16);
- boost::asio::io_service io_service;
- tcp::resolver resolver (io_service);
- tcp::resolver::query query("127.0.0.1", fmt::to_string(TEST_SERVER_PORT));
- tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
-
shared_ptr<Socket> socket(new Socket);
- socket->connect (*endpoint_iterator);
+ socket->connect("127.0.0.1", TEST_SERVER_PORT);
{
Socket::WriteDigestScope ds(socket);
send (socket, "Hello world!");
TestServer server(true);
server.expect (13);
- boost::asio::io_service io_service;
- tcp::resolver resolver (io_service);
- tcp::resolver::query query("127.0.0.1", fmt::to_string(TEST_SERVER_PORT));
- tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
-
shared_ptr<Socket> socket(new Socket);
- socket->connect (*endpoint_iterator);
+ socket->connect("127.0.0.1", TEST_SERVER_PORT);
{
Socket::WriteDigestScope ds(socket);
send (socket, "Hello world!");