sipxmedialib  Version 3.3
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CByeReport Class Reference

#include <ByeReport.h>

Inheritance diagram for CByeReport:
Inheritance graph
[legend]
Collaboration diagram for CByeReport:
Collaboration graph
[legend]

Public Member Functions

 CByeReport (ssrc_t ulSSRC=0)
 
 ~CByeReport (void)
 
unsigned long FormatByeReport (unsigned char *puchReportBuffer, unsigned long ulBufferSize=0)
 
unsigned long ParseByeReport (unsigned char *puchReportBuffer)
 
ssrc_t GetSSRC (void)
 
virtual void SetSSRC (ssrc_t ulSSRC)
 
unsigned long GetCSRC (ssrc_t *paulCSRC, bool bNBO=FALSE)
 
void SetCSRC (ssrc_t *paulCSRC, unsigned long ulCSRCCount, bool bNBO=FALSE)
 
void SetReason (unsigned char *puchReason, unsigned long ulLength=0)
 
unsigned long GetReason (unsigned char *puchReason)
 
IByeReport * GetByeInterface (void)
 
- Public Member Functions inherited from CBaseClass
CBaseClass CBASECLASS_PROTO_ARGS ((const char *pDerivedType="Unknown", int callLineNum=0))
 
virtual ~CBaseClass (void)
 
virtual bool Initialize (void)
 
bool IsInitialized (void)
 
void setAutomatic (bool)
 
virtual unsigned long AddRef ADD_RELEASE_PROTO_ARGS ((int callLineNum))
 
virtual unsigned long Release ADD_RELEASE_PROTO_ARGS ((int callLineNum))
 
- Public Member Functions inherited from CRTCPHeader
 CRTCPHeader (ssrc_t ulSSRC, RTCP_REPORTS_ET etPayloadType, unsigned long ulVersion=2)
 
virtual ~CRTCPHeader (void)
 
virtual unsigned long GetHeaderLength (void)
 
virtual unsigned long GetVersion (void)
 
virtual unsigned long GetPadding (void)
 
virtual RTCP_REPORTS_ET GetPayload (void)
 
virtual unsigned long GetReportCount (void)
 
virtual unsigned long GetReportLength (void)
 
virtual bool IsOurSSRC (ssrc_t ulSSRC)
 

Private Member Functions

unsigned long ExtractPadding (unsigned char *puchReportBuffer)
 
unsigned long LoadPadding (unsigned char *puchReportBuffer, bool *pbPadded)
 

Private Attributes

unsigned long m_ulReasonLength
 
unsigned char m_uchReason [MAX_SOURCE_LENGTH]
 
unsigned long m_ulCSRCCount
 
ssrc_t m_aulCSRC [MAX_CSRCS]
 

Additional Inherited Members

- Static Public Member Functions inherited from CBaseClass
static bool AllowDeletes (void)
 
static void s_SetAllowDeletes (int v)
 
- Static Public Member Functions inherited from CRTCPHeader
static int VetPacket (unsigned char *buffer, int bufferLen)
 
- Public Attributes inherited from CBaseClass
bool m_bInitialized
 
bool m_bAutomatic
 
int m_ulReferences
 
- Static Public Attributes inherited from CBaseClass
static bool s_bAllowDeletes = true
 
- Protected Member Functions inherited from CRTCPHeader
unsigned long FormatRTCPHeader (unsigned char *puchRTCPBuffer, unsigned long ulPadding, unsigned long ulCount, unsigned long ulPayloadLength)
 
bool ParseRTCPHeader (unsigned char *puchRTCPBuffer)
 
- Protected Attributes inherited from CRTCPHeader
unsigned long m_ulVersion
 
unsigned long m_ulPadding
 
unsigned long m_ulCount
 
RTCP_REPORTS_ET m_etPayloadType
 
unsigned long m_ulLength
 
unsigned long m_ulSSRC
 

Detailed Description

Class Name: CByeReport

Inheritance: CRTCPHeader - RTCP Report Header Base Class

Interfaces: IByeReport - RTCP Bye Report Interface

Description: The CByeReport Class coordinates the processing and generation of RTCP Bye reports associated with either an inbound or outbound RTP connection.

Notes: CByeReport is derived from CBaseClass which provides basic Initialization and reference counting support.

Constructor & Destructor Documentation

CByeReport ( ssrc_t  ulSSRC = 0)

Method Name: CByeReport() - Constructor

Inputs: ssrc_t ulSSRC - The the Identifier for this source

Outputs: None

Returns: None

Description: Performs routine CByeReport object initialization.

Usage Notes: A CByeReport object shall be created by the CRTCPRender with this constructor. A CByeReport object will also be created be the CRTCPSource upon receipt of an RTCP Bye Report from a particiapting FE.

~CByeReport ( void  )

Method Name: ~CByeReport() - Destructor

Inputs: None

Outputs: None

Returns: None

Description: Shall deallocated and/or release all resources which was acquired over the course of runtime.

Usage Notes:

Member Function Documentation

unsigned long FormatByeReport ( unsigned char *  puchReportBuffer,
unsigned long  ulBufferSize = 0 
)

Method Name: FormatByeReport

Inputs: unsigned long ulBufferSize Optional size defining the length allocated for the buffer

Outputs: unsigned char *puchReportBuffer Character Buffer used to store the contents of the Sender Report

Returns: unsigned long Returns the number of octet written into the buffer.

Description: Constructs a Bye report using the buffer passed in by the caller.

Usage Notes: The header of the RTCP Report shall be formatted by delegating to the base class.

unsigned long ParseByeReport ( unsigned char *  puchReportBuffer)

Method Name: ParseByeReport

Inputs: unsigned char *puchReportBuffer Character Buffer containing the contents of the Bye Report

Outputs: None

Returns: unsigned long

Description: Extracts the contents of an Bye report using the buffer passed in by the caller.

Usage Notes: The header of the RTCP Report shall be parsed by delegating to the base class.

ssrc_t GetSSRC ( void  )
inlinevirtual

Method Name: GetSSRC

Inputs: None

Outputs: None

Returns: ssrc_t - The SSRC of the Bye Report

Description: Returns the SSRC Associated with the Bye Report.

Usage Notes:

Reimplemented from CRTCPHeader.

virtual void SetSSRC ( ssrc_t  ulSSRC)
virtual

Method Name: SetSSRC

Inputs: ssrc_t ulSSRC - Source ID

Outputs: None

Returns: void

Description: Stores the Source Identifier associated with an RTP connection.

Usage Notes:

Reimplemented from CRTCPHeader.

unsigned long GetCSRC ( ssrc_t paulCSRC,
bool  bNBO = FALSE 
)

Method Name: GetCSRC

Inputs: bool bNBO Flag identifying whether data should be represented in NBO format

Outputs: ssrc_t *paulCSRC Contributing Source Identifier(s) Array pointer

Returns: unsigned long Number of Contributing Source Identifier(s)

Description: Returns the contributing source values associated with the RTP packet.

Usage Notes:

void SetCSRC ( ssrc_t paulCSRC,
unsigned long  ulCSRCCount,
bool  bNBO = FALSE 
)

Method Name: SetCSRC

Inputs: ssrc_t *paulCSRC

  • Contributing Source Identifier(s) Array pointer unsigned long ulCSRCCount
  • Number of Contributing Source Identifier(s) bool bNBO - TRUE indicates data is in NBO.

Outputs: None

Returns: void

Description: Sets the contributing source values associated with the RTP packet.

Usage Notes:

void SetReason ( unsigned char *  puchReason,
unsigned long  ulLength = 0 
)

Method Name: SetReason

Inputs: char *puchName Reason Character String unsigned long ulLength Optional Length of Reason argument passed

Outputs: None

Returns: void

Description: Stores the Reason field and length, either specified of derived, as attributed within the object.

Usage Notes: The Reason argument MUST be passed as a NULL terminated string or must contain a valid length argument. All text strings passed shall be truncated beyond the length of 255 unsigned characters.

unsigned long GetReason ( unsigned char *  puchReason)

Method Name: GetReason

Inputs: None

Outputs: char *puchReason Character buffer in which the Reason attribute shall be returned

Returns: unsigned long Length of the item being returned in the unsigned character buffer

Description: Retrieves the Reason attribute stored within the object and returns its associated length.

Usage Notes: All unsigned character strings returned are limited to 255 bytes in length. Any wide unsigned character support for internationalized display is a responsibility assumed by the caller.

IByeReport* GetByeInterface ( void  )

Method Name: GetByeInterface()

Inputs: None

Outputs: None

Returns: IByeReport * - Pointer to the Bye Report Interface

Description: Returns the Bye Report interface.

Usage Notes:

unsigned long ExtractPadding ( unsigned char *  puchReportBuffer)
private

Macro Name: DECLARE_IBASE_M

Inputs: None

Outputs: None

Returns: None

Description: This implements the IBaseClass functions used and exposed by derived classes.

Usage Notes:

Method Name: ExtractPadding

Inputs: unsigned char *puchReportBuffer Character Buffer containing the contents of the Bye Report

Outputs: None

Returns: unsigned long - Number of octets processed

Description: Extracts the padding that might be present at the end of a list of field data contained within an Bye report.

Usage Notes:

unsigned long LoadPadding ( unsigned char *  puchReportBuffer,
bool *  pbPadded 
)
private

Method Name: LoadPadding

Inputs: unsigned char *puchReportBuffer Character Buffer containing the contents of the Bye Report

Outputs: bool &pbPadded Flag specifying whether padding was added

Returns: unsigned long - Number of octets processed

Description: Pad out to a 4 byte boundary as needed.

Usage Notes:

Member Data Documentation

unsigned long m_ulReasonLength
private

Attribute Name: m_ulReasonLength

Type: unsigned long

Description: This member shall store the length of the textual reason for RTP session termination.

unsigned char m_uchReason[MAX_SOURCE_LENGTH]
private

Attribute Name: m_uchReason

Type: Character Array

Description: This member shall store the textual reason for an RTP session termination.

unsigned long m_ulCSRCCount
private

Attribute Name: m_ulCSRCCount

Type: unsigned long

Description: The number of CSRCs contained with an RTP report.

ssrc_t m_aulCSRC[MAX_CSRCS]
private

Attribute Name: m_aulCSRC

Type: ssrc_t

Description: The CSRCs contained with an RTP report.