42constexpr uint64_t SIGNAL_PREFIX = 0x7766554433221100ULL;
45 uint64_t data = SIGNAL_PREFIX |
static_cast<uint8_t
>(signal_type);
46 return zmq::message_t{&data,
sizeof(uint64_t)};
58 if (msg.size() !=
sizeof(uint64_t)) {
62 if ((*msg.data<uint64_t>() & ~0xFFULL) != SIGNAL_PREFIX) {
66 uint8_t signal_byte = *msg.data<uint64_t>() & 0xFF;
67 switch (signal_byte) {
68 case static_cast<uint8_t
>(type_t::success):
70 case static_cast<uint8_t
>(type_t::failure):
72 case static_cast<uint8_t
>(type_t::stop):
Class representing signals for ZMQ communication.
type_t
Enumeration of possible signal types.
@ success
Operation completed successfully.
@ failure
Operation failed.
@ stop
Stop/terminate request.
static zmq::message_t create_success()
Create a success signal message.
static std::optional< signal_t > check_signal(const zmq::message_t &msg) noexcept
Check if a zmq::message_t contains a valid signal.
static zmq::message_t create_stop()
Create a stop signal message.
static zmq::message_t create_failure()
Create a failure signal message.
Signal definitions and utilities for actor inter-thread communication.