46 namespace b_io = boost::iostreams;
47 namespace b_ar = boost::archive;
49 std::string serial_str;
50 b_io::back_insert_device<std::string> inserter(serial_str);
51 b_io::stream<b_io::back_insert_device<std::string>> bstream(inserter);
56#ifdef BOOST_IOS_HAS_ZSTD
57 std::unique_ptr<b_io::filtering_ostream> out_ = std::make_unique<b_io::filtering_ostream>();
58 out_->push(b_io::zstd_compressor(b_io::zstd::best_speed));
60 std::unique_ptr<b_ar::binary_oarchive> oarchive_ =
61 std::make_unique<b_ar::binary_oarchive>(*out_, b_ar::no_header);
64 throw std::runtime_error(
"Unsupported ZSTD compression (boost) for histograms emissions channel");
68 b_ar::binary_oarchive oa(bstream);
73 zmq::message_t msg(serial_str.size());
74 std::copy_n(
static_cast<const char*
>(serial_str.data()), msg.size(),
static_cast<char*
>(msg.data()));
76 fZmqSocket.send(msg, flags | zmq::send_flags::dontwait);