# OpalRTPSessionManager Class Reference

`#include <rtpconn.h>`

Collaboration diagram for OpalRTPSessionManager:

[legend]

## Public Member Functions

PMutex & | GetMutex ()
virtual bool | AllSessionsFailing ()
Construction
| OpalRTPSessionManager (OpalRTPConnection &connection)
| ~OpalRTPSessionManager ()
| Destroy sessions, unlinking from connection.
| OpalRTPSessionManager (const OpalRTPSessionManager &other)
| Copy constructor - maintain list in OpalRTPConnection.
void | operator= (const OpalRTPSessionManager &other)
| Assignment of RTP session managers.
Operations
unsigned | GetNextSessionID ()
void | AddSession (RTP_Session *session, const OpalMediaType &mediaType)
void | AddMediaSession (OpalMediaSession *session, const OpalMediaType &mediaType)
virtual void | CloseSession (unsigned sessionID)
RTP_Session * | GetSession (unsigned sessionID) const
OpalMediaSession * | GetMediaSession (unsigned sessionID) const
bool | ChangeSessionID (unsigned fromSessionID, unsigned toSessionID)

## Protected Member Functions

| PDICTIONARY (SessionDict, POrdinalKey, OpalMediaSession)

## Protected Attributes

OpalRTPConnection & | m_connection
PMutex | m_mutex
SessionDict | sessions

## Detailed Description

This class manages the RTP sessions for an OpalRTPConnection

## Constructor & Destructor Documentation

OpalRTPSessionManager::OpalRTPSessionManager | ( | OpalRTPConnection & | connection | ) |

Construct new session manager database.

Parameters:

  connection | Owner connection for RTP sessions

OpalRTPSessionManager::~OpalRTPSessionManager | ( |  | ) |

Destroy sessions, unlinking from connection.

OpalRTPSessionManager::OpalRTPSessionManager | ( | const OpalRTPSessionManager & | other | ) |

Copy constructor - maintain list in OpalRTPConnection.

## Member Function Documentation

void OpalRTPSessionManager::AddMediaSession | ( | OpalMediaSession * | session,
|  | const OpalMediaType & | mediaType |
| ) |  |  |

Parameters:

  session | Session to add.
  mediaType | initial media type for this session

void OpalRTPSessionManager::AddSession | ( | RTP_Session * | session,
|  | const OpalMediaType & | mediaType |
| ) |  |  |

Add an RTP session for the specified ID.

This function MUST be called only after the UseSession() function has returned NULL. The mutex flag is left locked in that case. This function expects the mutex to be locked and unlocks it automatically.

Parameters:

  session | Session to add.
  mediaType | initial media type for this session

virtual bool OpalRTPSessionManager::AllSessionsFailing | ( |  | ) | `[virtual]`

bool OpalRTPSessionManager::ChangeSessionID | ( | unsigned | fromSessionID,
|  | unsigned | toSessionID |
| ) |  |  |

Change the sessionID for an existing session. This will adjust the RTP session and media streams.

Return false if no such session exists.

Parameters:

  fromSessionID | Session ID to search for
  toSessionID | Session ID to change to

virtual void OpalRTPSessionManager::CloseSession | ( | unsigned | sessionID | ) | `[virtual]`

Release the session.

Parameters:

  sessionID | Session ID to release, 0 indicates all

OpalMediaSession* OpalRTPSessionManager::GetMediaSession | ( | unsigned | sessionID | ) | const

PMutex& OpalRTPSessionManager::GetMutex | ( |  | ) | `[inline]`

unsigned OpalRTPSessionManager::GetNextSessionID | ( |  | ) |

Get next available session ID for the media type.

RTP_Session* OpalRTPSessionManager::GetSession | ( | unsigned | sessionID | ) | const

Get a session for the specified ID.

Parameters:

  sessionID | Session ID to get.

void OpalRTPSessionManager::operator= | ( | const OpalRTPSessionManager & | other | ) | `[inline]`

Assignment of RTP session managers.

OpalRTPSessionManager::PDICTIONARY | ( | SessionDict | ,
|  | POrdinalKey | ,
|  | OpalMediaSession |  |
| ) |  |  | `[protected]`

## Field Documentation

OpalRTPConnection& OpalRTPSessionManager::m_connection `[protected]`

PMutex OpalRTPSessionManager::m_mutex `[protected]`

SessionDict OpalRTPSessionManager::sessions `[protected]`

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

- rtpconn.h