summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-01-26 00:22:40 +0100
committerCarl Hetherington <cth@carlh.net>2025-01-26 02:21:16 +0100
commit818e4bec3fd59a4ff7619a1b449c4eda71cb84fb (patch)
treeb0be2ffc8113abe037c3f4652b2db09b4e54cf47
parent2d777cdbd6017463fe6bd62e2d982d273811d7de (diff)
Allow use of different nanomsg socket URLs for different purposes.
-rw-r--r--src/lib/nanomsg.cc9
-rw-r--r--src/lib/nanomsg.h2
-rw-r--r--src/tools/dcpomatic_disk.cc2
3 files changed, 7 insertions, 6 deletions
diff --git a/src/lib/nanomsg.cc b/src/lib/nanomsg.cc
index 8061e2f84..425009538 100644
--- a/src/lib/nanomsg.cc
+++ b/src/lib/nanomsg.cc
@@ -33,21 +33,22 @@ using std::string;
using boost::optional;
-#define NANOMSG_URL "ipc:///tmp/dcpomatic.ipc"
+char constexpr URL_PREFIX[] = "ipc:///tmp/dcpomatic_";
-Nanomsg::Nanomsg (bool server)
+Nanomsg::Nanomsg(bool server, string id)
{
_socket = nn_socket (AF_SP, NN_PAIR);
if (_socket < 0) {
throw runtime_error("Could not set up nanomsg socket");
}
+ string const url = URL_PREFIX + id;
if (server) {
- if ((_endpoint = nn_bind(_socket, NANOMSG_URL)) < 0) {
+ if ((_endpoint = nn_bind(_socket, url.c_str())) < 0) {
throw runtime_error(String::compose("Could not bind nanomsg socket (%1)", errno));
}
} else {
- if ((_endpoint = nn_connect(_socket, NANOMSG_URL)) < 0) {
+ if ((_endpoint = nn_connect(_socket, url.c_str())) < 0) {
throw runtime_error(String::compose("Could not connect nanomsg socket (%1)", errno));
}
}
diff --git a/src/lib/nanomsg.h b/src/lib/nanomsg.h
index 8d89d6d99..8ae6a55aa 100644
--- a/src/lib/nanomsg.h
+++ b/src/lib/nanomsg.h
@@ -27,7 +27,7 @@
class Nanomsg
{
public:
- explicit Nanomsg (bool server);
+ Nanomsg(bool server, std::string prefix);
~Nanomsg ();
Nanomsg (Nanomsg const&) = delete;
diff --git a/src/tools/dcpomatic_disk.cc b/src/tools/dcpomatic_disk.cc
index b47addce9..d4b6a954c 100644
--- a/src/tools/dcpomatic_disk.cc
+++ b/src/tools/dcpomatic_disk.cc
@@ -108,7 +108,7 @@ class DOMFrame : public wxFrame
public:
explicit DOMFrame (wxString const & title)
: wxFrame (nullptr, wxID_ANY, title)
- , _nanomsg (true)
+ , _nanomsg(true, "disk")
, _sizer (new wxBoxSizer(wxVERTICAL))
{
#ifdef DCPOMATIC_OSX