20class OPENDHT_PUBLIC PeerDiscovery
23 static constexpr in_port_t DEFAULT_PORT = 8888;
24 using ServiceDiscoveredCallback = std::function<void(msgpack::object&&,
SockAddr&&)>;
26 PeerDiscovery(in_port_t port = DEFAULT_PORT,
27 std::shared_ptr<asio::io_context> ioContext = {},
28 std::shared_ptr<Logger> logger = {});
35 void startDiscovery(std::string_view type, ServiceDiscoveredCallback callback);
46 void startPublish(std::string_view type,
const msgpack::sbuffer& pack_buf);
47 void startPublish(sa_family_t domain, std::string_view type,
const msgpack::sbuffer& pack_buf);
50 void startPublish(std::string_view type,
const T&
object)
53 msgpack::pack(buf,
object);
71 bool stopPublish(sa_family_t domain, std::string_view type);
73 void connectivityChanged();
75 void stopConnectivityChanged();
78 class DomainPeerDiscovery;
79 std::unique_ptr<DomainPeerDiscovery> peerDiscovery4_;
80 std::unique_ptr<DomainPeerDiscovery> peerDiscovery6_;
81 std::shared_ptr<asio::io_context> ioContext_;
82 std::thread ioRunnner_;