Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

RTPProfile Class Reference

#include <RTPProfile.h>

Inheritance diagram for RTPProfile:

RTPAVProfile List of all members.

Protected Member Functions

virtual void handleMessageFromRTP (cMessage *msg)
virtual void handleMessageFromPayloadSender (cMessage *msg)
virtual void handleMessageFromPayloadReceiver (cMessage *msg)
virtual void initializeProfile (RTPInnerPacket *rinp)
virtual void createSenderModule (RTPInnerPacket *rinp)
virtual void deleteSenderModule (RTPInnerPacket *rinp)
virtual void senderModuleControl (RTPInnerPacket *rinp)
virtual void dataIn (RTPInnerPacket *rinp)
virtual void senderModuleInitialized (RTPInnerPacket *rinp)
virtual void senderModuleStatus (RTPInnerPacket *rinp)
virtual void dataOut (RTPInnerPacket *rinp)
virtual void processIncomingPacket (RTPInnerPacket *rinp)
virtual void processOutgoingPacket (RTPInnerPacket *rinp)
virtual RTPSSRCGatefindSSRCGate (u_int32 ssrc)
virtual RTPSSRCGatenewSSRCGate (u_int32 ssrc)

Protected Attributes

const char * _profileName
int _maxReceivers
cArray * _ssrcGates
int _rtcpPercentage
IN_Port _preferredPort
int _mtu
bool _autoOutputFileNames

Detailed Description

The class RTPProfile is a module which handles RTPPayloadSender and RTPPayloadReceiver modules. It creates them dynamically on demand. This class offers all functionality for the above tasks, subclasses just need to set variables like profile name, rtcp percentage and preferred port in their initialize() method. The dynamically created sender and receiver modules must have have following class names: RTP<profileName>Payload<payloadType>Sender RTP<profileName>Payload<payloadType>Receiver


Member Function Documentation

void RTPProfile::createSenderModule RTPInnerPacket rinp  )  [protected, virtual]
 

This method is called when the application issued the creation of an rtp payload sender module to transmit data. It creates a new sender module and connects it. The profile module informs the rtp module of having finished this task. Then it initializes the newly create sender module with a inititalizeSenderModule message.

void RTPProfile::dataIn RTPInnerPacket rinp  )  [protected, virtual]
 

Handles incoming data packets: If there isn't a receiver module for this sender it creates one. The data packet is forwarded to the receiver module after calling processIncomingPacket.

void RTPProfile::dataOut RTPInnerPacket rinp  )  [protected, virtual]
 

Handles outgoing data packets: Calls processOutgoingPacket and forwards the packet to the rtp module.

void RTPProfile::deleteSenderModule RTPInnerPacket rinp  )  [protected, virtual]
 

When a sender module is no longer needed it can be deleted by the profile module.

RTPSSRCGate * RTPProfile::findSSRCGate u_int32  ssrc  )  [protected, virtual]
 

Finds the gate of the receiver module for rtp data packets from this ssrc.

void RTPProfile::handleMessageFromPayloadReceiver cMessage *  msg  )  [protected, virtual]
 

Handles messages coming from a receiver module.

void RTPProfile::handleMessageFromPayloadSender cMessage *  msg  )  [protected, virtual]
 

Handles messages coming from the sender module.

void RTPProfile::handleMessageFromRTP cMessage *  msg  )  [protected, virtual]
 

Handles messages received from the rtp module.

void RTPProfile::initializeProfile RTPInnerPacket rinp  )  [protected, virtual]
 

Initialization message received from rtp module.

RTPSSRCGate * RTPProfile::newSSRCGate u_int32  ssrc  )  [protected, virtual]
 

Creates a new association ssrc/gateId for this ssrc.

void RTPProfile::processIncomingPacket RTPInnerPacket rinp  )  [protected, virtual]
 

Every time a rtp packet is received it it pre-processed by this method to remove profile specific extension which are not handled by the payload receiver module. In this implementation the packet isn't changed. Important: This method works with RTPInnerPacket. So the rtp packet must be decapsulated, changed and encapsulated again.

void RTPProfile::processOutgoingPacket RTPInnerPacket rinp  )  [protected, virtual]
 

Simular to the procedure for incoming packets, this adds profile specific extensions to outgoing rtp packets.

void RTPProfile::senderModuleControl RTPInnerPacket rinp  )  [protected, virtual]
 

The profile module forwards sender control messages to the sender module.

void RTPProfile::senderModuleInitialized RTPInnerPacket rinp  )  [protected, virtual]
 

The sender module returns a senderModuleInitialized message after being initialized. The profile module forwards this message to the rtp module which delivers it to its destination, the rtcp module.

void RTPProfile::senderModuleStatus RTPInnerPacket rinp  )  [protected, virtual]
 

After having received a sender module control message the sender module returns a sender status message to inform the application what it's doing at the moment.


Member Data Documentation

bool RTPProfile::_autoOutputFileNames [protected]
 

If this is set true the RTPProfile automatically sets the output file name for payload receiver modules so the user is not bothered to set them manually during simulation runtime.

int RTPProfile::_maxReceivers [protected]
 

The maximum number of incoming data streams this profile module can handle. It is set to the gate size of "toPayloadReceiver", "fromPayloadReceiver".

int RTPProfile::_mtu [protected]
 

The maximum size an RTPPacket can have.

IN_Port RTPProfile::_preferredPort [protected]
 

The rtp port this profile uses if no port is given.

const char* RTPProfile::_profileName [protected]
 

The name of this profile. Needed for dynamic creating of sender and receiver modules.

int RTPProfile::_rtcpPercentage [protected]
 

The percentage of the available bandwidth to be used for rtcp.

cArray* RTPProfile::_ssrcGates [protected]
 

Stores information to which gate rtp data packets from a ssrc must be forwarded.


The documentation for this class was generated from the following files:
Generated on Tue Sep 12 12:20:21 2006 for RTP model for OMNeT++ by  doxygen 1.4.2