SIPHandlersList Class Reference

`#include <handlers.h>`

## Public Member Functions

void | Append (SIPHandler *handler)
void | Remove (SIPHandler *handler)
void | Update (SIPHandler *handler)
bool | DeleteObjectsToBeRemoved ()
PSafePtr< SIPHandler > | GetFirstHandler (PSafetyMode mode=PSafeReference) const
unsigned | GetCount (SIP_PDU::Methods meth, const PString &eventPackage=PString::Empty()) const
PStringList | GetAddresses (bool includeOffline, SIP_PDU::Methods meth, const PString &eventPackage=PString::Empty()) const
PSafePtr< SIPHandler > | FindSIPHandlerByCallID (const PString &callID, PSafetyMode m)
PSafePtr< SIPHandler > | FindSIPHandlerByAuthRealm (const PString &authRealm, PSafetyMode m)
PSafePtr< SIPHandler > | FindSIPHandlerByAuthRealm (const PString &authRealm, const PString &userName, PSafetyMode m)
PSafePtr< SIPHandler > | FindSIPHandlerByUrl (const PURL &url, SIP_PDU::Methods meth, PSafetyMode m)
PSafePtr< SIPHandler > | FindSIPHandlerByUrl (const PURL &url, SIP_PDU::Methods meth, const PString &eventPackage, PSafetyMode m)
PSafePtr< SIPHandler > | FindSIPHandlerByDomain (const PString &name, SIP_PDU::Methods meth, PSafetyMode m)

## Protected Types

typedef SIPHandler::IndexMap | IndexMap

## Protected Member Functions

void | RemoveIndexes (SIPHandler *handler)
PSafePtr< SIPHandler > | FindBy (IndexMap &by, const PString &key, PSafetyMode m)

## Protected Attributes

PMutex | m_extraMutex
PSafeList< SIPHandler > | m_handlersList
IndexMap | m_byCallID
IndexMap | m_byAorAndPackage
IndexMap | m_byAuthIdAndRealm
IndexMap | m_byAorUserAndRealm

## Detailed Description

This dictionary is used both to contain the active and successful registrations, and subscriptions.

## Member Typedef Documentation

typedef SIPHandler::IndexMap SIPHandlersList::IndexMap

protected

## Member Function Documentation

void SIPHandlersList::Append | ( | SIPHandler * | handler | ) |

Append a new handler to the list

bool SIPHandlersList::DeleteObjectsToBeRemoved | ( |  | ) |

inline

Clean up lists of handler.

References m_handlersList.

PSafePtr<SIPHandler> SIPHandlersList::FindBy | ( | IndexMap & | by,
|  | const PString & | key,
|  | PSafetyMode | m
| ) |  |

protected

PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByAuthRealm | ( | const PString & | authRealm,
|  | PSafetyMode | m
| ) |  |

Find the SIPHandler object with the specified authRealm

PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByAuthRealm | ( | const PString & | authRealm,
|  | const PString & | userName,
|  | PSafetyMode | m
| ) |  |

Find the SIPHandler object with the specified authRealm & user

PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByCallID | ( | const PString & | callID,
|  | PSafetyMode | m
| ) |  |

Find the SIPHandler object with the specified callID

PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByDomain | ( | const PString & | name,
|  | SIP_PDU::Methods | meth,
|  | PSafetyMode | m
| ) |  |

Find the SIPHandler object with the specified registration host. For example, in the above case, the name parameter could be "sip.seconix.com" or "seconix.com".

PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByUrl | ( | const PURL & | url,
|  | SIP_PDU::Methods | meth,
|  | PSafetyMode | m
| ) |  |

Find the SIPHandler object with the specified URL. The url is the registration address, for example, 6001@.nosp@m.sip..nosp@m.secon.nosp@m.ix.c.nosp@m.om when registering 6001 to sip.seconix.com with realm seconix.com or 6001@.nosp@m.seco.nosp@m.nix.c.nosp@m.om when registering 6001@.nosp@m.seco.nosp@m.nix.c.nosp@m.om to sip.seconix.com

PSafePtr<SIPHandler> SIPHandlersList::FindSIPHandlerByUrl | ( | const PURL & | url,
|  | SIP_PDU::Methods | meth,
|  | const PString & | eventPackage,
|  | PSafetyMode | m
| ) |  |

PStringList SIPHandlersList::GetAddresses | ( | bool | includeOffline,
|  | SIP_PDU::Methods | meth,
|  | const PString & | eventPackage = `PString::Empty()`
| ) |  | const

Return a list of the active address of records for each handler.

Referenced by SIPEndPoint::GetPublications(), SIPEndPoint::GetRegistrations(), and SIPEndPoint::GetSubscriptions().

unsigned SIPHandlersList::GetCount | ( | SIP_PDU::Methods | meth,
|  | const PString & | eventPackage = `PString::Empty()`
| ) |  | const

Return the number of registered accounts

Referenced by SIPEndPoint::GetRegistrationsCount(), and SIPEndPoint::GetSubscriptionCount().

PSafePtr<SIPHandler> SIPHandlersList::GetFirstHandler | ( | PSafetyMode | mode = `PSafeReference` | ) | const

inline

Get the first handler in the list. Further enumeration may be done by the ++operator on the safe pointer.

References m_handlersList.

void SIPHandlersList::Remove | ( | SIPHandler * | handler | ) |

Remove a handler from the list. Handler is not immediately deleted but marked for deletion later by DeleteObjectsToBeRemoved() when all references are done with the handler.

void SIPHandlersList::RemoveIndexes | ( | SIPHandler * | handler | ) |

protected

void SIPHandlersList::Update | ( | SIPHandler * | handler | ) |

Update indexes for handler in the list

Referenced by SIPEndPoint::UpdateHandlerIndexes().

## Field Documentation

IndexMap SIPHandlersList::m_byAorAndPackage

protected

IndexMap SIPHandlersList::m_byAorUserAndRealm

protected

IndexMap SIPHandlersList::m_byAuthIdAndRealm

protected

IndexMap SIPHandlersList::m_byCallID

protected

PMutex SIPHandlersList::m_extraMutex

protected

PSafeList<SIPHandler> SIPHandlersList::m_handlersList

protected

Referenced by DeleteObjectsToBeRemoved(), and GetFirstHandler().

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

- handlers.h