live
Groupsock Class Reference

#include <Groupsock.hh>

Inheritance diagram for Groupsock:
Collaboration diagram for Groupsock:

Public Member Functions

 Groupsock (UsageEnvironment &env, struct sockaddr_storage const &groupAddr, Port port, u_int8_t ttl)
 Groupsock (UsageEnvironment &env, struct sockaddr_storage const &groupAddr, struct sockaddr_storage const &sourceFilterAddr, Port port)
virtual ~Groupsock ()
virtual destRecord * createNewDestRecord (struct sockaddr_storage const &addr, Port const &port, u_int8_t ttl, unsigned sessionId, destRecord *next)
void changeDestinationParameters (struct sockaddr_storage const &newDestAddr, Port newDestPort, int newDestTTL, unsigned sessionId=0)
unsigned lookupSessionIdFromDestination (struct sockaddr_storage const &destAddrAndPort) const
virtual void addDestination (struct sockaddr_storage const &addr, Port const &port, unsigned sessionId)
virtual void removeDestination (unsigned sessionId)
void removeAllDestinations ()
Boolean hasMultipleDestinations () const
struct sockaddr_storage const & groupAddress () const
struct sockaddr_storage const & sourceFilterAddress () const
Boolean isSSM () const
u_int8_t ttl () const
void multicastSendOnly ()
virtual Boolean output (UsageEnvironment &env, unsigned char *buffer, unsigned bufferSize)
Boolean wasLoopedBackFromUs (UsageEnvironment &env, struct sockaddr_storage const &fromAddressAndPort)
virtual Boolean handleRead (unsigned char *buffer, unsigned bufferMaxSize, unsigned &bytesRead, struct sockaddr_storage &fromAddressAndPort)
virtual Boolean write (struct sockaddr_storage const &addressAndPort, u_int8_t ttl, unsigned char *buffer, unsigned bufferSize)
void reset ()
int socketNum () const
Port port () const
UsageEnvironment & env () const

Data Fields

NetInterfaceTrafficStats statsGroupIncoming
NetInterfaceTrafficStats statsGroupOutgoing

Static Public Attributes

static NetInterfaceTrafficStats statsIncoming
static NetInterfaceTrafficStats statsOutgoing
static int DebugLevel
static UsageEnvironment * DefaultUsageEnvironment

Protected Member Functions

destRecord * lookupDestRecordFromDestination (struct sockaddr_storage const &targetAddrAndPort) const
portNumBits sourcePortNum () const
Boolean changePort (Port newPort)

Protected Attributes

destRecord * fDests

Private Member Functions

void removeDestinationFrom (destRecord *&dests, unsigned sessionId)

Private Attributes

GroupEId fIncomingGroupEId
Port fSourcePort
unsigned fLastSentTTL
int fSocketNum
UsageEnvironment & fEnv
Port fPort
int fFamily

Detailed Description

Definition at line 78 of file Groupsock.hh.

Constructor & Destructor Documentation

◆ Groupsock() [1/2]

Groupsock::Groupsock ( UsageEnvironment & env,
struct sockaddr_storage const & groupAddr,
Port port,
u_int8_t ttl )

References Socket::env(), Socket::port(), and ttl().

◆ Groupsock() [2/2]

Groupsock::Groupsock ( UsageEnvironment & env,
struct sockaddr_storage const & groupAddr,
struct sockaddr_storage const & sourceFilterAddr,
Port port )

References Socket::env(), and Socket::port().

◆ ~Groupsock()

virtual Groupsock::~Groupsock ( )
virtual

Member Function Documentation

◆ addDestination()

virtual void Groupsock::addDestination ( struct sockaddr_storage const & addr,
Port const & port,
unsigned sessionId )
virtual

References Socket::port().

◆ changeDestinationParameters()

void Groupsock::changeDestinationParameters ( struct sockaddr_storage const & newDestAddr,
Port newDestPort,
int newDestTTL,
unsigned sessionId = 0 )

◆ changePort()

Boolean Socket::changePort ( Port newPort)
protectedinherited

◆ createNewDestRecord()

virtual destRecord * Groupsock::createNewDestRecord ( struct sockaddr_storage const & addr,
Port const & port,
u_int8_t ttl,
unsigned sessionId,
destRecord * next )
virtual

References Socket::port(), and ttl().

◆ env()

UsageEnvironment & Socket::env ( ) const
inlineinherited

◆ groupAddress()

struct sockaddr_storage const & Groupsock::groupAddress ( ) const
inline

Definition at line 114 of file Groupsock.hh.

114 {
116 }
struct sockaddr_storage const & groupAddress() const
Definition GroupEId.hh:43
GroupEId fIncomingGroupEId
Definition Groupsock.hh:153

References fIncomingGroupEId, and GroupEId::groupAddress().

◆ handleRead()

virtual Boolean Groupsock::handleRead ( unsigned char * buffer,
unsigned bufferMaxSize,
unsigned & bytesRead,
struct sockaddr_storage & fromAddressAndPort )
virtual

Reimplemented from OutputSocket.

◆ hasMultipleDestinations()

Boolean Groupsock::hasMultipleDestinations ( ) const
inline

Definition at line 112 of file Groupsock.hh.

112{ return fDests != NULL && fDests->fNext != NULL; }
#define NULL
destRecord * fDests
Definition Groupsock.hh:151
destRecord * fNext
Definition Groupsock.hh:69

References fDests, destRecord::fNext, and NULL.

◆ isSSM()

Boolean Groupsock::isSSM ( ) const
inline

Definition at line 121 of file Groupsock.hh.

121 {
122 return fIncomingGroupEId.isSSM();
123 }
Boolean isSSM() const

References fIncomingGroupEId, and GroupEId::isSSM().

◆ lookupDestRecordFromDestination()

destRecord * Groupsock::lookupDestRecordFromDestination ( struct sockaddr_storage const & targetAddrAndPort) const
protected

◆ lookupSessionIdFromDestination()

unsigned Groupsock::lookupSessionIdFromDestination ( struct sockaddr_storage const & destAddrAndPort) const

◆ multicastSendOnly()

void Groupsock::multicastSendOnly ( )

◆ output()

virtual Boolean Groupsock::output ( UsageEnvironment & env,
unsigned char * buffer,
unsigned bufferSize )
virtual

References Socket::env().

◆ port()

Port Socket::port ( ) const
inlineinherited

◆ removeAllDestinations()

void Groupsock::removeAllDestinations ( )

◆ removeDestination()

virtual void Groupsock::removeDestination ( unsigned sessionId)
virtual

◆ removeDestinationFrom()

void Groupsock::removeDestinationFrom ( destRecord *& dests,
unsigned sessionId )
private

◆ reset()

void Socket::reset ( )
inherited

◆ socketNum()

int Socket::socketNum ( ) const
inlineinherited

Definition at line 49 of file NetInterface.hh.

49{ return fSocketNum; }
int fSocketNum

References fSocketNum.

◆ sourceFilterAddress()

struct sockaddr_storage const & Groupsock::sourceFilterAddress ( ) const
inline

Definition at line 117 of file Groupsock.hh.

117 {
119 }
struct sockaddr_storage const & sourceFilterAddress() const
Definition GroupEId.hh:44

References fIncomingGroupEId, and GroupEId::sourceFilterAddress().

◆ sourcePortNum()

portNumBits OutputSocket::sourcePortNum ( ) const
inlineprotectedinherited

Definition at line 50 of file Groupsock.hh.

50{return fSourcePort.num();}
Port fSourcePort
Definition Groupsock.hh:58
portNumBits num() const

References fSourcePort, and Port::num().

◆ ttl()

u_int8_t Groupsock::ttl ( ) const
inline

Definition at line 125 of file Groupsock.hh.

125{ return fIncomingGroupEId.ttl(); }
u_int8_t ttl() const
Definition GroupEId.hh:50

References fIncomingGroupEId, and GroupEId::ttl().

Referenced by createNewDestRecord(), and Groupsock().

◆ wasLoopedBackFromUs()

Boolean Groupsock::wasLoopedBackFromUs ( UsageEnvironment & env,
struct sockaddr_storage const & fromAddressAndPort )

References Socket::env().

◆ write()

virtual Boolean OutputSocket::write ( struct sockaddr_storage const & addressAndPort,
u_int8_t ttl,
unsigned char * buffer,
unsigned bufferSize )
virtualinherited

Field Documentation

◆ DebugLevel

int Socket::DebugLevel
staticinherited

Definition at line 57 of file NetInterface.hh.

◆ DefaultUsageEnvironment

UsageEnvironment* NetInterface::DefaultUsageEnvironment
staticinherited

Definition at line 32 of file NetInterface.hh.

◆ fDests

destRecord* Groupsock::fDests
protected

Definition at line 151 of file Groupsock.hh.

Referenced by hasMultipleDestinations().

◆ fEnv

UsageEnvironment& Socket::fEnv
privateinherited

Definition at line 66 of file NetInterface.hh.

Referenced by env().

◆ fFamily

int Socket::fFamily
privateinherited

Definition at line 68 of file NetInterface.hh.

◆ fIncomingGroupEId

GroupEId Groupsock::fIncomingGroupEId
private

Definition at line 153 of file Groupsock.hh.

Referenced by groupAddress(), isSSM(), sourceFilterAddress(), and ttl().

◆ fLastSentTTL

unsigned OutputSocket::fLastSentTTL
privateinherited

Definition at line 59 of file Groupsock.hh.

◆ fPort

Port Socket::fPort
privateinherited

Definition at line 67 of file NetInterface.hh.

Referenced by port().

◆ fSocketNum

int Socket::fSocketNum
privateinherited

Definition at line 65 of file NetInterface.hh.

Referenced by socketNum().

◆ fSourcePort

Port OutputSocket::fSourcePort
privateinherited

Definition at line 58 of file Groupsock.hh.

Referenced by sourcePortNum().

◆ statsGroupIncoming

NetInterfaceTrafficStats Groupsock::statsGroupIncoming

Definition at line 133 of file Groupsock.hh.

◆ statsGroupOutgoing

NetInterfaceTrafficStats Groupsock::statsGroupOutgoing

Definition at line 134 of file Groupsock.hh.

◆ statsIncoming

NetInterfaceTrafficStats Groupsock::statsIncoming
static

Definition at line 131 of file Groupsock.hh.

◆ statsOutgoing

NetInterfaceTrafficStats Groupsock::statsOutgoing
static

Definition at line 132 of file Groupsock.hh.


The documentation for this class was generated from the following file: