23 #include <core/exception.h>
24 #include <plugins/gossip/gossip/gossip_group.h>
25 #include <plugins/gossip/gossip/gossip_group_manager.h>
44 std::string & broadcast_address,
45 unsigned short broadcast_port)
47 broadcast_addr(broadcast_address),
48 send_port(broadcast_port),
49 recv_port(broadcast_port)
60 std::string & broadcast_address,
61 unsigned short send_port,
62 unsigned short recv_port)
63 : name(name), broadcast_addr(broadcast_address), send_port(send_port), recv_port(recv_port)
72 broadcast_addr(c.broadcast_addr),
73 send_port(c.send_port),
74 recv_port(c.recv_port),
75 crypto_key(c.crypto_key),
76 crypto_cipher(c.crypto_cipher)
109 std::string & service_name,
111 std::map<std::string, GossipGroupConfiguration> &initial_groups)
112 : service_name_(service_name), service_publisher_(service_publisher)
114 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
115 for (
auto g : initial_groups) {
116 create_group(g.second);
119 std::map<std::string, GossipGroupConfiguration>::iterator g;
120 for (g = initial_groups.begin(); g != initial_groups.end(); ++g) {
121 create_group(g->second);
138 if (groups_.find(name) == groups_.end()) {
142 if (groups_.find(name) != groups_.end()) {
143 return groups_[name];
146 throw Exception(
"Cannot register to group %s", name.c_str());
179 groups_[gc.
name] =
new GossipGroup(gc.
name,