module-arch-POC/src/port_router_impl.hpp

28 lines
930 B
C++

#pragma once
#include "port_impl_base.hpp"
#include "port_types.hpp"
#include <chrono>
#include <thread>
#define FMT_HEADER_ONLY
#include <fmt/format.h>
#include <fmt/ranges.h>
// Router transport placeholder (no send/recv logic yet).
template <typename Port, typename Callback> class PortImpl<port_types_e::ROUTER, Port, Callback> : public PortImplBase<Port, Callback> {
public:
PortImpl(const Port *port, zmq::context_t &zmq_ctx, const std::map<std::string, std::string> &endpoints, Callback &&callback)
: PortImplBase<Port, Callback>(port, zmq_ctx, endpoints, std::forward<Callback>(callback)) {}
// Send to socket depending on implementation
void send(const msgpack::sbuffer &data, const std::string &addr = "") const override {};
private:
void listen__(std::stop_token st) const override {
while (!st.stop_requested()) {
std::this_thread::sleep_for(std::chrono::milliseconds(100u));
}
}
};