Lightweight error code wrapper for the promeki library.
Definition error.h:39
Dynamic array container wrapping std::vector.
Definition list.h:40
Manages multicast group membership for multi-stream scenarios.
Definition multicastmanager.h:47
bool isMemberOf(const SocketAddress &group) const
Returns true if any socket is a member of the group.
void setDefaultInterface(const String &iface)
Sets the default network interface for joins.
Definition multicastmanager.h:132
Error joinGroup(const SocketAddress &group, UdpSocket *socket)
Joins a multicast group on a socket.
Error leaveSourceGroup(const SocketAddress &group, const SocketAddress &source, UdpSocket *socket)
Leaves a Source-Specific Multicast group.
List< SocketAddress > activeGroups() const
Returns a list of all active multicast group addresses.
void leaveAllGroups()
Leaves all managed multicast groups.
~MulticastManager() override
Destructor. Leaves all managed groups.
MulticastManager(ObjectBase *parent=nullptr)
Constructs a MulticastManager.
const String & defaultInterface() const
Returns the default interface name.
Definition multicastmanager.h:135
PROMEKI_SIGNAL(groupJoined, SocketAddress)
Emitted when a multicast group is joined.
Error joinGroup(const SocketAddress &group, UdpSocket *socket, const String &iface)
Joins a multicast group on a specific interface.
PROMEKI_SIGNAL(groupLeft, SocketAddress)
Emitted when a multicast group is left.
Error joinSourceGroup(const SocketAddress &group, const SocketAddress &source, UdpSocket *socket)
Joins a Source-Specific Multicast group.
Error leaveGroup(const SocketAddress &group, UdpSocket *socket)
Leaves a multicast group on a socket.
Base object for promeki.
Definition objectbase.h:129
ObjectBase * parent() const
Returns the parent object, if one. nullptr if none.
Definition objectbase.h:258
Network address with port number.
Definition socketaddress.h:50
Encoding-aware string class with copy-on-write semantics.
Definition string.h:35
Datagram-oriented UDP socket with multicast support.
Definition udpsocket.h:47
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19