1 #ifndef ZIO_DOMO_BROKER_HPP_SEEN 2 #define ZIO_DOMO_BROKER_HPP_SEEN 5 #include <unordered_map> 6 #include <unordered_set> 39 zio::multipart_t& mmsg)> recv;
51 Service* service{
nullptr};
64 std::deque<zio::multipart_t> requests;
67 std::list<Worker*> waiting;
77 Service* service_require(std::string
name);
78 void service_dispatch(Service* srv);
80 zio::multipart_t& mmsg);
83 void worker_delete(Worker*& wrk,
int disconnect);
86 void worker_waiting(Worker* wkr);
98 std::unordered_map<remote_identity_t, Service*> m_services;
99 std::unordered_map<remote_identity_t, Worker*> m_workers;
100 std::unordered_set<Worker*> m_waiting;
void proc_heartbeat(time_unit_t heartbeat_at)
Do heartbeat processing given next heatbeat time.
void broker_actor(zio::socket_t &link, std::string address, int socktype)
const time_unit_t HEARTBEAT_EXPIRY
void proc_one()
Process one input on socket.
const time_unit_t HEARTBEAT_INTERVAL
std::string remote_identity_t
implementation of ZIO data flow protocol endpoints
Broker(zio::socket_t &sock)
std::chrono::milliseconds time_unit_t