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"
47GossipGroup::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)
57 std::shared_ptr<protobuf_comm::ProtobufBroadcastPeer>(
new protobuf_comm::ProtobufBroadcastPeer(
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());
76GossipGroup::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)
87 std::shared_ptr<protobuf_comm::ProtobufBroadcastPeer>(
new protobuf_comm::ProtobufBroadcastPeer(
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());
98GossipGroup::~GossipGroup()
100 service_publisher_->unpublish_service(service_.get());
110GossipGroup::send(std::string &peer, google::protobuf::Message &m)
119GossipGroup::broadcast(google::protobuf::Message &m)
Fawkes library namespace.