# SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue > Class Template Reference
[RTP sessions.]

This template class adds the threading aspect to the RTPSessionBase template in one of the many possible ways. More...

`#include <rtp.h>`

Inheritance diagram for SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >:

List of all members.

## Public Member Functions

| SingleThreadRTPSession (const InetHostAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0, int pri=0, uint32 memberssize=MembershipBookkeeping::defaultMembersHashSize, RTPApplication &app=defaultApplication())
| SingleThreadRTPSession (uint32 ssrc, const InetHostAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0, int pri=0, uint32 memberssize=MembershipBookkeeping::defaultMembersHashSize, RTPApplication &app=defaultApplication())
| SingleThreadRTPSession (const InetMcastAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0, int pri=0, uint32 memberssize=MembershipBookkeeping::defaultMembersHashSize, RTPApplication &app=defaultApplication(), uint32 iface=0)
| SingleThreadRTPSession (uint32 ssrc, const InetMcastAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0, int pri=0, uint32 memberssize=MembershipBookkeeping::defaultMembersHashSize, RTPApplication &app=defaultApplication(), uint32 iface=0)
| ~SingleThreadRTPSession ()
void | startRunning ()
| Activate stack and start service thread.

## Protected Member Functions

void | disableStack (void)
void | enableStack (void)
microtimeout_t | getSchedulingTimeout (void)
void | controlReceptionService (void)
void | controlTransmissionService (void)
timeval | getRTCPCheckInterval (void)
size_t | dispatchDataPacket (void)
virtual void | timerTick (void)
virtual bool | isPendingData (microtimeout_t timeout)
virtual void | run (void)
| Single runnable method for this RTP stacks, schedules outgoing and incoming RTP data and RTCP packets.
size_t | takeInDataPacket (void)
size_t | dispatchBYE (const std::string &str)

## Detailed Description

### template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
class SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >

This template class adds the threading aspect to the RTPSessionBase template in one of the many possible ways.

It inherits from a single execution thread that schedules sending of outgoing packets and receipt of incoming packets.

Author:
  Federico Montesino Pouzols <fedemp@altern.org>

Examples:

  audiorx.cpp, audiotx.cpp, ccrtptest.cpp, rtphello.cpp, rtplisten.cpp, and rtpsend.cpp.

## Constructor & Destructor Documentation

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::SingleThreadRTPSession | ( | const InetHostAddress & | ia,
|  | tpport_t | dataPort = `DefaultRTPDataPort`,
|  | tpport_t | controlPort = `0`,
|  | int | pri = `0`,
|  | uint32 | memberssize = `MembershipBookkeeping::defaultMembersHashSize`,
|  | RTPApplication & | app = `defaultApplication()`
| ) |  | `[inline]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::SingleThreadRTPSession | ( | uint32 | ssrc,
|  | const InetHostAddress & | ia,
|  | tpport_t | dataPort = `DefaultRTPDataPort`,
|  | tpport_t | controlPort = `0`,
|  | int | pri = `0`,
|  | uint32 | memberssize = `MembershipBookkeeping::defaultMembersHashSize`,
|  | RTPApplication & | app = `defaultApplication()`
| ) |  | `[inline]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::SingleThreadRTPSession | ( | const InetMcastAddress & | ia,
|  | tpport_t | dataPort = `DefaultRTPDataPort`,
|  | tpport_t | controlPort = `0`,
|  | int | pri = `0`,
|  | uint32 | memberssize = `MembershipBookkeeping::defaultMembersHashSize`,
|  | RTPApplication & | app = `defaultApplication()`,
|  | uint32 | iface = `0`
| ) |  | `[inline]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::SingleThreadRTPSession | ( | uint32 | ssrc,
|  | const InetMcastAddress & | ia,
|  | tpport_t | dataPort = `DefaultRTPDataPort`,
|  | tpport_t | controlPort = `0`,
|  | int | pri = `0`,
|  | uint32 | memberssize = `MembershipBookkeeping::defaultMembersHashSize`,
|  | RTPApplication & | app = `defaultApplication()`,
|  | uint32 | iface = `0`
| ) |  | `[inline]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::~SingleThreadRTPSession | ( | ) | `[inline]`

## Member Function Documentation

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::controlReceptionService | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::controlTransmissionService | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::disableStack | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

size_t SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::dispatchBYE | ( | const std::string & | str ) | `[inline, protected, virtual]`

Reimplemented from TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

size_t SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::dispatchDataPacket | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::enableStack | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

timeval SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::getRTCPCheckInterval | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

microtimeout_t SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::getSchedulingTimeout | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

virtual bool SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::isPendingData | ( | microtimeout_t | timeout ) | `[inline, protected, virtual]`

Reimplemented from TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

virtual void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::run | ( | void | ) | `[inline, protected, virtual]`

Single runnable method for this RTP stacks, schedules outgoing and incoming RTP data and RTCP packets.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::startRunning | ( | ) | `[inline]`

Activate stack and start service thread.

Examples:
  ccrtptest.cpp.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

size_t SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::takeInDataPacket | ( | void | ) | `[inline, protected]`

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>

virtual void SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >::timerTick | ( | void | ) | `[inline, protected, virtual]`

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

- rtp.h