# RTPDuplex Class Reference
[ccRTP Extension classes]

A peer associated RTP socket pair for physically connected peer hosts. More...

`#include <cc++/rtp.h>`

Inheritance diagram for RTPDuplex:

List of all members.

## Public Member Functions

| RTPDuplex (const InetAddress &bind, tpport_t local, tpport_t remote)
virtual | ~RTPDuplex ()
UDPTransmit::Error | connect (const InetHostAddress &host, tpport_t port=0)

## Protected Member Functions

bool | isPendingData (microtimeout_t timeout)
size_t | sendData (const unsigned char *const buffer, size_t len)
size_t | recvData (unsigned char *buffer, size_t len, InetHostAddress &na, tpport_t &tp)
void | setDataPeer (const InetAddress &, tpport_t)
void | setControlPeer (const InetAddress &, tpport_t)
size_t | getNextDataPacketSize () const
SyncSource & | getPeer ()

## Detailed Description

A peer associated RTP socket pair for physically connected peer hosts.

This has no RTCP and assumes the receiver is connected to a known transmitter, hence no "foreign" packets will arrive.

Author:
  David Sugar RTP peer host over UDP.

Examples:

  rtpduphello.cpp.

## Constructor & Destructor Documentation

RTPDuplex::RTPDuplex | ( | const InetAddress & | bind,
|  | tpport_t | local,
|  | tpport_t | remote
| ) |  |

Parameters:

  bind | network address this socket is to be bound
  local | transport port this socket is to be bound
  remote | peer transpor port

virtual RTPDuplex::~RTPDuplex | ( | ) | `[virtual]`

## Member Function Documentation

UDPTransmit::Error RTPDuplex::connect | ( | const InetHostAddress & | host,
|  | tpport_t | port = `0`
| ) |  |

Parameters:

  host | peer address
  port | peer port. If not specified, the same as the local is used

Returns:
  socket status

size_t RTPDuplex::getNextDataPacketSize | ( | ) | const`[inline, protected, virtual]`

Implements IncomingDataQueue.

SyncSource& RTPDuplex::getPeer | ( | ) | `[protected]`

Returns:
  the associated peer information

bool RTPDuplex::isPendingData | ( | microtimeout_t | timeout ) | `[inline, protected, virtual]`

Parameters:

  timeout | how much time to wait for new data

Returns:
  if there is some new data

Implements RTPDataQueue.

size_t RTPDuplex::recvData | ( | unsigned char * | buffer,
|  | size_t | len,
|  | InetHostAddress & | na,
|  | tpport_t & | tp
| ) |  | `[inline, protected, virtual]`

Parameters:

  buffer | where to store the retrieved data
  len | how many octets to read
  na | Source network address.
  tp | Source transport port.

Returns:
  number of octets read

Implements IncomingDataQueue.

size_t RTPDuplex::sendData | ( | const unsigned char *const | buffer,
|  | size_t | len
| ) |  | `[inline, protected, virtual]`

Parameters:

  buffer | pointer to data to be written
  len | how many octets to write

Returns:
  number of octets written

Reimplemented from OutgoingDataQueue.

void RTPDuplex::setControlPeer | ( | const InetAddress & | ,
|  | tpport_t |
| ) |  | `[inline, protected, virtual]`

Parameters:

  - | peer host network address.
  - | peer host RTCP transport port.

Reimplemented from OutgoingDataQueue.

void RTPDuplex::setDataPeer | ( | const InetAddress & | ,
|  | tpport_t |
| ) |  | `[inline, protected, virtual]`

Parameters:

  - | peer host network address.
  - | peer host RTP data transport port.

Reimplemented from OutgoingDataQueue.

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

- ext.h