24 #include <plugins/gossip/gossip/gossip_group_manager.h> 25 #include <plugins/gossip/gossip/gossip_group.h> 26 #include <core/exception.h> 40 : send_port(0), recv_port(0)
50 std::string &broadcast_address,
51 unsigned short broadcast_port)
64 std::string &broadcast_address,
68 send_port(send_port), recv_port(recv_port)
95 std::map<std::string, GossipGroupConfiguration> &initial_groups)
96 : service_name_(service_name), service_publisher_(service_publisher)
98 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) 99 for (
auto g : initial_groups) {
100 create_group(g.second);
103 std::map<std::string, GossipGroupConfiguration>::iterator g;
104 for (g = initial_groups.begin(); g != initial_groups.end(); ++g) {
105 create_group(g->second);
124 if (groups_.find(name) == groups_.end()) {
128 if (groups_.find(name) != groups_.end()) {
129 return groups_[name];
132 throw Exception(
"Cannot register to group %s", name.c_str());
std::string crypto_key
encryption key
std::string name
name of the group
Service publisher interface.
virtual void leave_group(RefPtr< GossipGroup > &group)
Leave a gossip group.
Fawkes library namespace.
virtual RefPtr< GossipGroup > join_group(const std::string &name)
Join a group.
unsigned short recv_port
UDP port to list on for messages.
Group configuration for initial groups.
std::string crypto_cipher
encryption cipher
void reset()
Reset pointer.
Base class for exceptions in Fawkes.
GossipGroupConfiguration()
Constructor.
Gossip group communication handler.
virtual ~GossipGroupManager()
Destructor.
unsigned short send_port
UDP port to send messages to.
std::string broadcast_addr
Broadcast IP Addr.
GossipGroupManager(std::string &service_name, ServicePublisher *service_publisher, std::map< std::string, GossipGroupConfiguration > &initial_groups)
Constructor.