24#ifndef _GROUPSOCK_VERSION_HH
28#ifndef _NET_INTERFACE_HH
44 virtual Boolean write(
struct sockaddr_storage
const& addressAndPort, u_int8_t ttl,
45 unsigned char* buffer,
unsigned bufferSize);
55 struct sockaddr_storage& fromAddressAndPort);
64 destRecord(
struct sockaddr_storage
const& addr,
Port const& port, u_int8_t ttl,
unsigned sessionId,
84 struct sockaddr_storage
const& sourceFilterAddr,
94 Port newDestPort,
int newDestTTL,
95 unsigned sessionId = 0);
137 struct sockaddr_storage
const& fromAddressAndPort);
142 struct sockaddr_storage& fromAddressAndPort);
166 struct sockaddr_storage
const& sourceFilterAddr,
172 struct sockaddr_storage
const& sourceFilterAddr,
192 struct sockaddr_storage
const& groupAddress,
193 struct sockaddr_storage
const& sourceFilterAddress,
194 Port port, u_int8_t ttl);
UsageEnvironment & operator<<(UsageEnvironment &s, const Groupsock &g)
struct sockaddr_storage const & sourceFilterAddress() const
struct sockaddr_storage const & groupAddress() const
Iterator(GroupsockLookupTable &groupsocks)
AddressPortLookupTable::Iterator fIter
Groupsock * Lookup(UsageEnvironment &env, int sock)
Groupsock * Fetch(UsageEnvironment &env, struct sockaddr_storage const &groupAddress, Port port, u_int8_t ttl, Boolean &isNew)
Groupsock * Fetch(UsageEnvironment &env, struct sockaddr_storage const &groupAddress, struct sockaddr_storage const &sourceFilterAddr, Port port, Boolean &isNew)
Boolean Remove(Groupsock const *groupsock)
Groupsock * Lookup(struct sockaddr_storage const &groupAddress, struct sockaddr_storage const &sourceFilterAddr, Port port)
Groupsock * AddNew(UsageEnvironment &env, struct sockaddr_storage const &groupAddress, struct sockaddr_storage const &sourceFilterAddress, Port port, u_int8_t ttl)
AddressPortLookupTable fTable
Groupsock * Lookup(struct sockaddr_storage const &groupAddress, Port port)
NetInterfaceTrafficStats statsGroupOutgoing
Boolean wasLoopedBackFromUs(UsageEnvironment &env, struct sockaddr_storage const &fromAddressAndPort)
static NetInterfaceTrafficStats statsIncoming
unsigned lookupSessionIdFromDestination(struct sockaddr_storage const &destAddrAndPort) const
Groupsock(UsageEnvironment &env, struct sockaddr_storage const &groupAddr, struct sockaddr_storage const &sourceFilterAddr, Port port)
struct sockaddr_storage const & groupAddress() const
struct sockaddr_storage const & sourceFilterAddress() const
void removeDestinationFrom(destRecord *&dests, unsigned sessionId)
virtual void removeDestination(unsigned sessionId)
static NetInterfaceTrafficStats statsOutgoing
destRecord * lookupDestRecordFromDestination(struct sockaddr_storage const &targetAddrAndPort) const
virtual void addDestination(struct sockaddr_storage const &addr, Port const &port, unsigned sessionId)
void removeAllDestinations()
virtual destRecord * createNewDestRecord(struct sockaddr_storage const &addr, Port const &port, u_int8_t ttl, unsigned sessionId, destRecord *next)
GroupEId fIncomingGroupEId
Boolean hasMultipleDestinations() const
void changeDestinationParameters(struct sockaddr_storage const &newDestAddr, Port newDestPort, int newDestTTL, unsigned sessionId=0)
virtual Boolean output(UsageEnvironment &env, unsigned char *buffer, unsigned bufferSize)
virtual Boolean handleRead(unsigned char *buffer, unsigned bufferMaxSize, unsigned &bytesRead, struct sockaddr_storage &fromAddressAndPort)
NetInterfaceTrafficStats statsGroupIncoming
Groupsock(UsageEnvironment &env, struct sockaddr_storage const &groupAddr, Port port, u_int8_t ttl)
portNumBits sourcePortNum() const
OutputSocket(UsageEnvironment &env, Port port, int family)
virtual Boolean write(struct sockaddr_storage const &addressAndPort, u_int8_t ttl, unsigned char *buffer, unsigned bufferSize)
virtual Boolean handleRead(unsigned char *buffer, unsigned bufferMaxSize, unsigned &bytesRead, struct sockaddr_storage &fromAddressAndPort)
OutputSocket(UsageEnvironment &env, int family)
UsageEnvironment & env() const
destRecord(struct sockaddr_storage const &addr, Port const &port, u_int8_t ttl, unsigned sessionId, destRecord *next)