ccRTP 2.1.2
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue > Class Template Reference
RTP sessions.

#include <rtp.h>

Inheritance diagram for TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >:
Inheritance graph
[legend]
Collaboration diagram for TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >:
Collaboration graph
[legend]

Public Member Functions

  TRTPSessionBase (const InetHostAddress &ia, tpport_t dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication &app)
  Builds a session waiting for packets in a host address. More...
 
  TRTPSessionBase (uint32 ssrc, const InetHostAddress &ia, tpport_t dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication &app)
  Builds a session with the specified ssrc identifier for the local source. More...
 
  TRTPSessionBase (const InetMcastAddress &ia, tpport_t dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication &app, uint32 iface)
  Builds a session waiting for packets in a multicast address. More...
 
  TRTPSessionBase (uint32 ssrc, const InetMcastAddress &ia, tpport_t dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication &app, uint32 iface)
  Builds a session waiting for packets in a multicast address, with the specified ssrc identifier for the local source. More...
 
virtual size_t  dispatchBYE (const std::string &str)
 
Socket::Error  setMcastTTL (uint8 ttl)
  Set the value of the TTL field in the sent packets. More...
 
virtual  ~TRTPSessionBase ()
 
RTPDataChannel *  getDSO (void)
 

Protected Member Functions

bool  isPendingData (microtimeout_t timeout)
 
InetHostAddress  getDataSender (tpport_t *port=NULL) const
 
size_t  getNextDataPacketSize () const
 
size_t  recvData (unsigned char *buffer, size_t len, InetHostAddress &na, tpport_t &tp)
  Receive data from the data channel/socket. More...
 
void  setDataPeer (const InetAddress &host, tpport_t port)
 
size_t  sendData (const unsigned char *const buffer, size_t len)
 
SOCKET  getDataRecvSocket () const
 
 
InetHostAddress  getControlSender (tpport_t *port=NULL) const
 
size_t  recvControl (unsigned char *buffer, size_t len, InetHostAddress &na, tpport_t &tp)
  Receive data from the control channel/socket. More...
 
void  setControlPeer (const InetAddress &host, tpport_t port)
 
size_t  sendControl (const unsigned char *const buffer, size_t len)
 
SOCKET  getControlRecvSocket () const
 
Socket::Error  joinGroup (const InetMcastAddress &ia, uint32 iface)
  Join a multicast group. More...
 
Socket::Error  leaveGroup (const InetMcastAddress &ia)
  Leave a multicast group. More...
 
void  endSocket ()
 

Protected Attributes

RTPDataChannel *  dso
 
RTCPChannel *  cso
 

Private Member Functions

void  build (const InetHostAddress &ia, tpport_t dataPort, tpport_t controlPort)
 
void  build (const InetMcastAddress &ia, tpport_t dataPort, tpport_t controlPort, uint32 iface)
 
tpport_t  odd_port (tpport_t port)
  Ensure a port number is odd. More...
 
tpport_t  even_port (tpport_t port)
  Ensure a port number is even. More...
 

Private Attributes

tpport_t  dataBasePort
 
tpport_t  controlBasePort
 

Friends

 

Detailed Description

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

Definition at line 87 of file rtp.h.

Constructor & Destructor Documentation

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::TRTPSessionBase ( const InetHostAddress &  ia,
tpport_t  dataPort,
tpport_t  controlPort,
uint32  membersSize,
RTPApplicationapp 
)
inline

Builds a session waiting for packets in a host address.

Parameters
ia Network address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.

Definition at line 99 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::TRTPSessionBase ( uint32  ssrc,
const InetHostAddress &  ia,
tpport_t  dataPort,
tpport_t  controlPort,
uint32  membersSize,
RTPApplicationapp 
)
inline

Builds a session with the specified ssrc identifier for the local source.

Parameters
ssrc SSRC identifier for the local source.
ia Network address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.

Definition at line 116 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::TRTPSessionBase ( const InetMcastAddress &  ia,
tpport_t  dataPort,
tpport_t  controlPort,
uint32  membersSize,
RTPApplicationapp,
uint32  iface 
)
inline

Builds a session waiting for packets in a multicast address.

TODO: ssrc constructor for multicast!

Parameters
ia Multicast address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.
iface Index (from 0 to n) of network interface to join to multicast group.

Definition at line 135 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::TRTPSessionBase ( uint32  ssrc,
const InetMcastAddress &  ia,
tpport_t  dataPort,
tpport_t  controlPort,
uint32  membersSize,
RTPApplicationapp,
uint32  iface 
)
inline

Builds a session waiting for packets in a multicast address, with the specified ssrc identifier for the local source.

Parameters
ssrc SSRC identifier for the local source.
ia Multicast address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.
iface Index (from 0 to n) of network interface to join to multicast group.

Definition at line 155 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
virtual TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::~TRTPSessionBase ( )
inlinevirtual

Definition at line 186 of file rtp.h.

Member Function Documentation

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
void TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::build ( const InetHostAddress &  ia,
tpport_t  dataPort,
tpport_t  controlPort 
)
inlineprivate

Definition at line 343 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
void TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::build ( const InetMcastAddress &  ia,
tpport_t  dataPort,
tpport_t  controlPort,
uint32  iface 
)
inlineprivate

Definition at line 358 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
virtual size_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::dispatchBYE ( const std::string &  str )
inlinevirtual

Reimplemented in SingleThreadRTPSession< RTPDataChannel, RTCPChannel, ServiceQueue >.

Definition at line 162 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
void TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::endSocket ( )
inlineprotected

Definition at line 327 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
tpport_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::even_port ( tpport_t  port )
inlineprivate

Ensure a port number is even.

If it is an odd number, return the next lower (even) port number.

Parameters
port number to filter
Returns
filtered (even) port number

Definition at line 392 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
SOCKET TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::getControlRecvSocket ( ) const
inlineprotected

Definition at line 279 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
InetHostAddress TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::getControlSender ( tpport_t *  port = NULL ) const
inlineprotected

Definition at line 249 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
SOCKET TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::getDataRecvSocket ( ) const
inlineprotected

Definition at line 237 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
InetHostAddress TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::getDataSender ( tpport_t *  port = NULL ) const
inlineprotected

Definition at line 203 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
RTPDataChannel* TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::getDSO ( void  )
inline

Definition at line 191 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
size_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::getNextDataPacketSize ( ) const
inlineprotected

Definition at line 207 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
bool TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::isPendingControl ( microtimeout_t  timeout )
inlineprotected
Parameters
timeout maximum timeout to wait, in microseconds
Returns
whether there are packets waiting to be picked

Definition at line 245 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
bool TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::isPendingData ( microtimeout_t  timeout )
inlineprotected
Parameters
timeout maximum timeout to wait, in microseconds

Definition at line 199 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
Socket::Error TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::joinGroup ( const InetMcastAddress &  ia,
uint32  iface 
)
inlineprotected

Join a multicast group.

Parameters
ia address of the multicast group
Returns
error code from the socket operation

Definition at line 289 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
Socket::Error TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::leaveGroup ( const InetMcastAddress &  ia )
inlineprotected

Leave a multicast group.

Parameters
ia address of the multicast group
Returns
error code from the socket operation

Definition at line 315 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
tpport_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::odd_port ( tpport_t  port )
inlineprivate

Ensure a port number is odd.

If it is an even number, return the next lower (odd) port number.

Parameters
port number to filter
Returns
filtered (odd) port number

Definition at line 381 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
size_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::recvControl ( unsigned char *  buffer,
size_t  len,
InetHostAddress &  na,
tpport_t &  tp 
)
inlineprotected

Receive data from the control channel/socket.

Parameters
buffer Buffer where to get data.
len Maximum number of octets to get.
na Source network address.
tp Source transport port.
Returns
Number of octets actually read.

Definition at line 262 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
size_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::recvData ( unsigned char *  buffer,
size_t  len,
InetHostAddress &  na,
tpport_t &  tp 
)
inlineprotected

Receive data from the data channel/socket.

Parameters
buffer Memory region to read to.
len Maximum number of octets to get.
na Source network address.
tp Source transport port.
Returns
Number of octets actually read.

Definition at line 220 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
size_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::sendControl ( const unsigned char *const  buffer,
size_t  len 
)
inlineprotected
Returns
number of octets actually written
Parameters
buffer
len

Definition at line 276 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
size_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::sendData ( const unsigned char *const  buffer,
size_t  len 
)
inlineprotected
Parameters
buffer memory region to write from
len number of octets to write

Definition at line 234 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
void TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::setControlPeer ( const InetAddress &  host,
tpport_t  port 
)
inlineprotected

Definition at line 267 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
void TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::setDataPeer ( const InetAddress &  host,
tpport_t  port 
)
inlineprotected

Definition at line 225 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
Socket::Error TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::setMcastTTL ( uint8  ttl )
inline

Set the value of the TTL field in the sent packets.

Parameters
ttl Time To Live
Returns
error code from the socket operation

Definition at line 174 of file rtp.h.

Friends And Related Function Documentation

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

Definition at line 401 of file rtp.h.

Field Documentation

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
tpport_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::controlBasePort
private

Definition at line 396 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
RTCPChannel* TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::cso
protected

Definition at line 400 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
tpport_t TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::dataBasePort
private

Definition at line 395 of file rtp.h.

template<class RTPDataChannel = DualRTPUDPIPv4Channel, class RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
RTPDataChannel* TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >::dso
protected

Definition at line 399 of file rtp.h.


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

Generated on Dec 15, 2017 for ccrtp-2.1.2 (*.h and *.cpp) and libzrtpcpp-2.3.4 (*.h), by   doxygen 1.8.6

AltStyle によって変換されたページ (->オリジナル) /