#include <rtpconn.h>
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) |
void | ReleaseSession (unsigned sessionID, PBoolean clearAll=PFalse) |
RTP_Session * | GetSession (unsigned sessionID) const |
OpalMediaSession * | GetMediaSession (unsigned sessionID) const |
virtual RTP_UDP * | FindSessionByLocalPort (WORD port) const |
bool | ChangeSessionID (unsigned fromSessionID, unsigned toSessionID) |
Protected Member Functions | |
PDICTIONARY (SessionDict, POrdinalKey, OpalMediaSession) | |
Protected Attributes | |
OpalRTPConnection & | m_connection |
PMutex | m_mutex |
SessionDict | sessions |
OpalRTPSessionManager::OpalRTPSessionManager | ( | OpalRTPConnection & | connection | ) |
Construct new session manager database.
connection | Owner connection for RTP sessions |
OpalRTPSessionManager::~OpalRTPSessionManager | ( | ) |
Destroy sessions, unlinking from connection.
OpalRTPSessionManager::OpalRTPSessionManager | ( | const OpalRTPSessionManager & | other | ) |
Copy constructor - maintain list in OpalRTPConnection.
void OpalRTPSessionManager::AddMediaSession | ( | OpalMediaSession * | session, | |
const OpalMediaType & | mediaType | |||
) |
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.
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.
fromSessionID | Session ID to search for |
toSessionID | Session ID to change to |
virtual RTP_UDP* OpalRTPSessionManager::FindSessionByLocalPort | ( | WORD | port | ) | const [virtual] |
Find an RTP session for the specified local port. If there is no session, NULL is returned.
port | Local port number |
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.
sessionID | Session ID to get. |
void OpalRTPSessionManager::operator= | ( | const OpalRTPSessionManager & | other | ) | [inline] |
Assignment of RTP session managers.
OpalRTPSessionManager::PDICTIONARY | ( | SessionDict | , | |
POrdinalKey | , | |||
OpalMediaSession | ||||
) | [protected] |
void OpalRTPSessionManager::ReleaseSession | ( | unsigned | sessionID, | |
PBoolean | clearAll = PFalse | |||
) |
Release the session.
sessionID | Session ID to release. |
clearAll | Clear all sessions with that ID |
OpalRTPConnection& OpalRTPSessionManager::m_connection [protected] |
PMutex OpalRTPSessionManager::m_mutex [protected] |
SessionDict OpalRTPSessionManager::sessions [protected] |