24#ifndef _PLUGINS_GOSSIP_GOSSIP_GOSSIP_GROUP_MANAGER_H_
25#define _PLUGINS_GOSSIP_GOSSIP_GOSSIP_GROUP_MANAGER_H_
27#include <core/utils/refptr.h>
36class ServicePublisher;
37class GossipAspectIniFin;
45 std::string & broadcast_address,
46 unsigned short broadcast_port);
48 std::string & broadcast_address,
69 std::map<std::string, GossipGroupConfiguration> &initial_groups);
79 std::string service_name_;
81 std::map<std::string, RefPtr<GossipGroup>> groups_;
GossipAspect initializer/finalizer.
Group configuration for initial groups.
unsigned short send_port
UDP port to send messages to.
unsigned short recv_port
UDP port to list on for messages.
std::string name
name of the group
std::string crypto_cipher
encryption cipher
GossipGroupConfiguration & operator=(const GossipGroupConfiguration &c)
Assignment operator.
std::string crypto_key
encryption key
std::string broadcast_addr
Broadcast IP Addr.
GossipGroupConfiguration()
Constructor.
Abstract class for a Gossip group manager.
GossipGroupManager(std::string &service_name, ServicePublisher *service_publisher, std::map< std::string, GossipGroupConfiguration > &initial_groups)
Constructor.
virtual void leave_group(RefPtr< GossipGroup > &group)
Leave a gossip group.
virtual RefPtr< GossipGroup > join_group(const std::string &name)
Join a group.
virtual ~GossipGroupManager()
Destructor.
RefPtr<> is a reference-counting shared smartpointer.
Service publisher interface.
Fawkes library namespace.