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 destRecordcreateNewDestRecord (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
UsageEnvironmentenv () const

Data Fields

NetInterfaceTrafficStats statsGroupIncoming
NetInterfaceTrafficStats statsGroupOutgoing

Static Public Attributes

static NetInterfaceTrafficStats statsIncoming
static NetInterfaceTrafficStats statsOutgoing
static int DebugLevel
static UsageEnvironmentDefaultUsageEnvironment

Protected Member Functions

destRecordlookupDestRecordFromDestination (struct sockaddr_storage const &targetAddrAndPort) const
portNumBits sourcePortNum () const
Boolean changePort (Port newPort)

Protected Attributes

destRecordfDests

Private Member Functions

void removeDestinationFrom (destRecord *&dests, unsigned sessionId)

Private Attributes

GroupEId fIncomingGroupEId
Port fSourcePort
unsigned fLastSentTTL
int fSocketNum
UsageEnvironmentfEnv
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: