10 #include <framework/pcore/zmq/utils/ZMQAddressUtils.h>
18 std::string randomName()
20 auto randchar = []() ->
char {
21 const char charset[] =
"abcdefghijklmnopqrstuvwxyz";
22 const size_t max_index = (
sizeof(charset) - 1);
23 return charset[gRandom->Integer(max_index)];
26 const unsigned int length = 4;
27 std::string str(length, 0);
28 std::generate_n(str.begin(), length, randchar);
32 std::string randomPort()
35 const unsigned int port = 5000 + gRandom->Integer(1000);
36 return std::to_string(port);
42 std::string socket_name =
"tcp://" + hostname +
":" + randomPort();
48 std::string socket_name =
"ipc://basf2_socket_" + randomName() +
".socket";
49 while (std::ifstream(socket_name)) {
50 socket_name =
"ipc://basf2_socket_" + randomName() +
".socket";
58 const std::string& prefix =
"tcp://";
59 if (socketAddress.compare(0, prefix.size(), prefix) == 0) {
60 if (socketPart == ZMQAddressType::c_input) {
61 return socketAddress +
"0";
63 return socketAddress +
"1";
65 return socketAddress +
"2";
67 return socketAddress +
"3";
69 return socketAddress +
"4";
72 if (socketPart == ZMQAddressType::c_input) {
73 return socketAddress +
"_input";
75 return socketAddress +
"_output";
77 return socketAddress +
"_pub";
79 return socketAddress +
"_sub";
81 return socketAddress +
"_control";