X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fnanomsg.cc;h=8061e2f8462c2b101f01e9ea71e48ca5724c71a1;hb=ee89fcb0d593d884999d911375fcc1661b963e33;hp=1180f69369930958ba3ad44cef56da5de4f4f70a;hpb=767238a8abebbb2a2f8d1e91806131754b9c67fd;p=dcpomatic.git diff --git a/src/lib/nanomsg.cc b/src/lib/nanomsg.cc index 1180f6936..8061e2f84 100644 --- a/src/lib/nanomsg.cc +++ b/src/lib/nanomsg.cc @@ -19,17 +19,17 @@ */ -#include "nanomsg.h" #include "dcpomatic_log.h" #include "exceptions.h" +#include "nanomsg.h" #include #include -#include #include +#include -using std::string; using std::runtime_error; +using std::string; using boost::optional; @@ -43,17 +43,24 @@ Nanomsg::Nanomsg (bool server) throw runtime_error("Could not set up nanomsg socket"); } if (server) { - if (nn_bind(_socket, NANOMSG_URL) < 0) { + if ((_endpoint = nn_bind(_socket, NANOMSG_URL)) < 0) { throw runtime_error(String::compose("Could not bind nanomsg socket (%1)", errno)); } } else { - if (nn_connect(_socket, NANOMSG_URL) < 0) { + if ((_endpoint = nn_connect(_socket, NANOMSG_URL)) < 0) { throw runtime_error(String::compose("Could not connect nanomsg socket (%1)", errno)); } } } +Nanomsg::~Nanomsg () +{ + nn_shutdown (_socket, _endpoint); + nn_close (_socket); +} + + bool Nanomsg::send (string s, int timeout) {