23 #include <netcomm/service_discovery/service.h>
24 #include <netcomm/service_discovery/service_publisher.h>
25 #include <plugins/gossip/gossip/gossip_group.h>
26 #include <protobuf_comm/peer.h>
28 #define GOSSIP_MDNSSD_SERVICE_NAME "_gossip._udp"
47 GossipGroup::GossipGroup(std::string & group_name,
48 std::string & peer_name,
49 std::string & broadcast_address,
50 unsigned short broadcast_port,
51 ServicePublisher * service_publisher,
52 const std::string &crypto_key,
53 const std::string &crypto_cipher)
54 : name_(group_name), service_publisher_(service_publisher)
58 broadcast_address, broadcast_port, crypto_key, crypto_cipher));
60 service_ = std::shared_ptr<NetworkService>(
61 new NetworkService(peer_name.c_str(), GOSSIP_MDNSSD_SERVICE_NAME, broadcast_port));
63 service_->add_txt(
"group=%s", group_name.c_str());
64 service_publisher_->publish_service(service_.get());
76 GossipGroup::GossipGroup(std::string & group_name,
77 std::string & peer_name,
78 std::string & broadcast_address,
79 unsigned short send_port,
80 unsigned short recv_port,
81 ServicePublisher * service_publisher,
82 const std::string &crypto_key,
83 const std::string &crypto_cipher)
84 : name_(group_name), service_publisher_(service_publisher)
88 broadcast_address, send_port, recv_port, crypto_key, crypto_cipher));
90 service_ = std::shared_ptr<NetworkService>(
91 new NetworkService(peer_name.c_str(), GOSSIP_MDNSSD_SERVICE_NAME, recv_port));
93 service_->add_txt(
"group=%s", group_name.c_str());
94 service_publisher_->publish_service(service_.get());
98 GossipGroup::~GossipGroup()
100 service_publisher_->unpublish_service(service_.get());
110 GossipGroup::send(std::string &peer, google::protobuf::Message &m)
119 GossipGroup::broadcast(google::protobuf::Message &m)
Communicate by broadcasting protobuf messages.
Fawkes library namespace.