DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ZmqUri.cpp
Go to the documentation of this file.
1
9
10#include "utilities/ZmqUri.hpp"
11#include "utilities/Issues.hpp"
12#include "utilities/get_ips.hpp"
13
14#include <string>
15#include <vector>
16
17// ZMQ URIs are formatted as follows: tcp://{host}:{port}
18dunedaq::utilities::ZmqUri::ZmqUri(std::string connection_string)
19{
20 if (connection_string.find("://") == std::string::npos) {
21 throw InvalidUri(ERS_HERE, connection_string);
22 }
23
24 scheme = connection_string.substr(0, connection_string.find("://"));
25 connection_string = connection_string.substr(connection_string.find("://") + 3);
26
27 if (connection_string.find(":") != std::string::npos) {
28 port = connection_string.substr(connection_string.find(":") + 1);
29 connection_string = connection_string.substr(0, connection_string.find(":"));
30 }
31 host = connection_string;
32}
33
34std::vector<std::string>
36{
37 if (scheme == "tcp") {
38 auto output = get_hostname_ips(host);
39
40 for (size_t ii = 0; ii < output.size(); ++ii) {
41 output[ii] = "tcp://" + output[ii] + ":" + port;
42 }
43 return output;
44 } else {
45 return { to_string() };
46 }
47}
#define ERS_HERE
std::vector< std::string > get_hostname_ips(std::string hostname)
Definition get_ips.hpp:31
std::string to_string()
Definition ZmqUri.hpp:26
ZmqUri(std::string connection_string)
Definition ZmqUri.cpp:18
std::vector< std::string > get_uri_ip_addresses()
Definition ZmqUri.cpp:35