#include <peclient.h>
Inheritance diagram for H323PeerElement:
Public Types | |
enum | Error { Confirmed, Rejected, NoResponse, NoServiceRelationship, ServiceRelationshipReestablished } |
enum | { LocalServiceRelationshipOrdinal = 0, NoServiceRelationshipOrdinal = 1, RemoteServiceRelationshipOrdinal = 2 } |
Public Member Functions | |
PSafePtr< H323PeerElementDescriptor > | GetFirstDescriptor (PSafetyMode mode=PSafeReference) |
PSafePtr< H323PeerElementServiceRelationship > | GetFirstLocalServiceRelationship (PSafetyMode mode=PSafeReference) |
PSafePtr< H323PeerElementServiceRelationship > | GetFirstRemoteServiceRelationship (PSafetyMode mode=PSafeReference) |
void | SetLocalName (const PString &name) |
PString | GetLocalName () const |
void | SetDomainName (const PString &name) |
PString | GetDomainName () const |
BOOL | SetOnlyServiceRelationship (const PString &peer, BOOL keepTrying=TRUE) |
BOOL | AddServiceRelationship (const H323TransportAddress &peer, BOOL keepTrying=TRUE) |
BOOL | AddServiceRelationship (const H323TransportAddress &peer, OpalGloballyUniqueID &serviceID, BOOL keepTrying=TRUE) |
BOOL | RemoveServiceRelationship (const OpalGloballyUniqueID &serviceID, int reason=H501_ServiceReleaseReason::e_terminated) |
BOOL | RemoveServiceRelationship (const H323TransportAddress &peer, int reason=H501_ServiceReleaseReason::e_terminated) |
BOOL | RemoveAllServiceRelationships () |
Error | ServiceRequestByAddr (const H323TransportAddress &peer) |
Error | ServiceRequestByAddr (const H323TransportAddress &peer, OpalGloballyUniqueID &serviceID) |
Error | ServiceRequestByID (OpalGloballyUniqueID &serviceID) |
BOOL | ServiceRelease (const OpalGloballyUniqueID &serviceID, unsigned reason) |
BOOL | AddDescriptor (const OpalGloballyUniqueID &descriptorID, const PStringArray &aliases, const H323TransportAddressArray &transportAddrs, unsigned options=H323PeerElementDescriptor::Protocol_H323, BOOL now=FALSE) |
BOOL | AddDescriptor (const OpalGloballyUniqueID &descriptorID, const H225_ArrayOf_AliasAddress &aliases, const H323TransportAddressArray &transportAddrs, unsigned options=H323PeerElementDescriptor::Protocol_H323, BOOL now=FALSE) |
BOOL | AddDescriptor (const OpalGloballyUniqueID &descriptorID, const H225_ArrayOf_AliasAddress &aliases, const H225_ArrayOf_AliasAddress &transportAddr, unsigned options=H323PeerElementDescriptor::Protocol_H323, BOOL now=FALSE) |
BOOL | AddDescriptor (const OpalGloballyUniqueID &descriptorID, const POrdinalKey &creator, const H225_ArrayOf_AliasAddress &alias, const H225_ArrayOf_AliasAddress &transportAddresses, unsigned options=H323PeerElementDescriptor::Protocol_H323, BOOL now=FALSE) |
BOOL | AddDescriptor (const OpalGloballyUniqueID &descriptorID, const POrdinalKey &creator, const H501_ArrayOf_AddressTemplate &addressTemplates, const PTime &updateTime, BOOL now=FALSE) |
BOOL | DeleteDescriptor (const PString &alias, BOOL now=FALSE) |
BOOL | DeleteDescriptor (const H225_AliasAddress &alias, BOOL now=FALSE) |
BOOL | DeleteDescriptor (const OpalGloballyUniqueID &descriptorID, BOOL now=FALSE) |
BOOL | AccessRequest (const PString &searchAlias, PStringArray &destAliases, H323TransportAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323) |
BOOL | AccessRequest (const PString &searchAlias, H225_ArrayOf_AliasAddress &destAliases, H323TransportAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323) |
BOOL | AccessRequest (const H225_AliasAddress &searchAlias, H225_ArrayOf_AliasAddress &destAliases, H323TransportAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323) |
BOOL | AccessRequest (const H225_AliasAddress &alias, H225_ArrayOf_AliasAddress &destAliases, H225_AliasAddress &transportAddress, unsigned options=H323PeerElementDescriptor::Protocol_H323) |
BOOL | UpdateDescriptor (H323PeerElementDescriptor *descriptor) |
BOOL | UpdateDescriptor (H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType) |
Error | SendUpdateDescriptorByID (const OpalGloballyUniqueID &serviceID, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType) |
Error | SendUpdateDescriptorByAddr (const H323TransportAddress &peer, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType) |
Error | SendAccessRequestByID (const OpalGloballyUniqueID &peerID, H501PDU &request, H501PDU &confirmPDU) |
Error | SendAccessRequestByAddr (const H323TransportAddress &peerAddr, H501PDU &request, H501PDU &confirmPDU) |
BOOL | MakeRequest (H323_AnnexG::Request &request) |
virtual void | OnAddServiceRelationship (const H323TransportAddress &) |
virtual void | OnRemoveServiceRelationship (const H323TransportAddress &) |
virtual void | OnNewDescriptor (const H323PeerElementDescriptor &) |
virtual void | OnUpdateDescriptor (const H323PeerElementDescriptor &) |
virtual void | OnRemoveDescriptor (const H323PeerElementDescriptor &) |
virtual H323Transaction::Response | OnServiceRequest (H501ServiceRequest &info) |
virtual H323Transaction::Response | OnDescriptorUpdate (H501DescriptorUpdate &info) |
virtual H323Transaction::Response | OnAccessRequest (H501AccessRequest &info) |
BOOL | OnReceiveServiceRequest (const H501PDU &pdu, const H501_ServiceRequest &pduBody) |
BOOL | OnReceiveServiceConfirmation (const H501PDU &pdu, const H501_ServiceConfirmation &pduBody) |
BOOL | OnReceiveDescriptorUpdate (const H501PDU &pdu, const H501_DescriptorUpdate &pduBody) |
BOOL | OnReceiveDescriptorUpdateACK (const H501PDU &pdu, const H501_DescriptorUpdateAck &pduBody) |
BOOL | OnReceiveAccessRequest (const H501PDU &pdu, const H501_AccessRequest &pduBody) |
BOOL | OnReceiveAccessConfirmation (const H501PDU &pdu, const H501_AccessConfirmation &pduBody) |
BOOL | OnReceiveAccessRejection (const H501PDU &pdu, const H501_AccessRejection &pduBody) |
Overrides from PObject | |
void | PrintOn (ostream &strm) const |
Protected Member Functions | |
void | Construct () |
Error | SendUpdateDescriptor (H501PDU &pdu, const H323TransportAddress &peer, H323PeerElementDescriptor *descriptor, H501_UpdateInformation_updateType::Choices updateType) |
BOOL | OnRemoteServiceRelationshipDisappeared (OpalGloballyUniqueID &serviceID, const H323TransportAddress &peer) |
void | InternalRemoveServiceRelationship (const H323TransportAddress &peer) |
H323Transaction::Response | HandleServiceRequest (H501ServiceRequest &info) |
virtual H323PeerElementDescriptor * | CreateDescriptor (const OpalGloballyUniqueID &descriptorID) |
virtual H323PeerElementServiceRelationship * | CreateServiceRelationship () |
virtual AliasKey * | CreateAliasKey (const H225_AliasAddress &alias, const OpalGloballyUniqueID &id, PINDEX pos, BOOL wild=FALSE) |
void | RemoveDescriptorInformation (const H501_ArrayOf_AddressTemplate &addressTemplates) |
PDECLARE_NOTIFIER (PThread, H323PeerElement, MonitorMain) | |
PDECLARE_NOTIFIER (PThread, H323PeerElement, UpdateAllDescriptors) | |
PDECLARE_NOTIFIER (PTimer, H323PeerElement, TickleMonitor) | |
PDICTIONARY (StringToOrdinalKey, PString, POrdinalKey) | |
PSORTED_LIST (AliasKeyList, H225_AliasAddress) | |
Protected Attributes | |
PMutex | localNameMutex |
PString | localIdentifier |
PString | domainName |
PSemaphore | requestMutex |
PThread * | monitor |
BOOL | monitorStop |
PSyncPoint | monitorTickle |
PMutex | basePeerOrdinalMutex |
PINDEX | basePeerOrdinal |
PSafeSortedList< H323PeerElementServiceRelationship > | localServiceRelationships |
PMutex | localPeerListMutex |
POrdinalSet | localServiceOrdinals |
PMutex | remotePeerListMutex |
PSafeSortedList< H323PeerElementServiceRelationship > | remoteServiceRelationships |
PStringToString | remotePeerAddrToServiceID |
StringToOrdinalKey | remotePeerAddrToOrdinalKey |
PSafeSortedList< H323PeerElementDescriptor > | descriptors |
PMutex | aliasMutex |
AliasKeyList | transportAddressToDescriptorID |
AliasKeyList | specificAliasToDescriptorID |
AliasKeyList | wildcardAliasToDescriptorID |
Classes | |
class | AliasKey |
anonymous enum |
H323PeerElement::H323PeerElement | ( | H323EndPoint & | endpoint, | |
H323Transport * | transport = NULL | |||
) |
Create a new client.
endpoint | Endpoint gatekeeper is associated with. |
H323PeerElement::H323PeerElement | ( | H323EndPoint & | endpoint, | |
const H323TransportAddress & | addr | |||
) |
endpoint | Endpoint gatekeeper is associated with. |
H323PeerElement::~H323PeerElement | ( | ) |
Destroy client.
H323PeerElement::H323PeerElement | ( | H323EndPoint & | endpoint, | |
H323Transport * | transport = NULL | |||
) |
Create a new client.
endpoint | Endpoint gatekeeper is associated with. |
H323PeerElement::H323PeerElement | ( | H323EndPoint & | endpoint, | |
const H323TransportAddress & | addr | |||
) |
endpoint | Endpoint gatekeeper is associated with. |
H323PeerElement::~H323PeerElement | ( | ) |
Destroy client.
void H323PeerElement::PrintOn | ( | ostream & | strm | ) | const |
Print the name of the peer element.
strm | Stream to print to. |
Reimplemented from H323_AnnexG.
PSafePtr<H323PeerElementDescriptor> H323PeerElement::GetFirstDescriptor | ( | PSafetyMode | mode = PSafeReference |
) | [inline] |
PSafePtr<H323PeerElementServiceRelationship> H323PeerElement::GetFirstLocalServiceRelationship | ( | PSafetyMode | mode = PSafeReference |
) | [inline] |
PSafePtr<H323PeerElementServiceRelationship> H323PeerElement::GetFirstRemoteServiceRelationship | ( | PSafetyMode | mode = PSafeReference |
) | [inline] |
void H323PeerElement::SetLocalName | ( | const PString & | name | ) |
PString H323PeerElement::GetLocalName | ( | ) | const |
void H323PeerElement::SetDomainName | ( | const PString & | name | ) |
PString H323PeerElement::GetDomainName | ( | ) | const |
BOOL H323PeerElement::SetOnlyServiceRelationship | ( | const PString & | peer, | |
BOOL | keepTrying = TRUE | |||
) |
Send a service request
BOOL H323PeerElement::AddServiceRelationship | ( | const H323TransportAddress & | peer, | |
BOOL | keepTrying = TRUE | |||
) |
BOOL H323PeerElement::AddServiceRelationship | ( | const H323TransportAddress & | peer, | |
OpalGloballyUniqueID & | serviceID, | |||
BOOL | keepTrying = TRUE | |||
) |
BOOL H323PeerElement::RemoveServiceRelationship | ( | const OpalGloballyUniqueID & | serviceID, | |
int | reason = H501_ServiceReleaseReason::e_terminated | |||
) |
BOOL H323PeerElement::RemoveServiceRelationship | ( | const H323TransportAddress & | peer, | |
int | reason = H501_ServiceReleaseReason::e_terminated | |||
) |
BOOL H323PeerElement::RemoveAllServiceRelationships | ( | ) |
Error H323PeerElement::ServiceRequestByAddr | ( | const H323TransportAddress & | peer | ) |
Error H323PeerElement::ServiceRequestByAddr | ( | const H323TransportAddress & | peer, | |
OpalGloballyUniqueID & | serviceID | |||
) |
Error H323PeerElement::ServiceRequestByID | ( | OpalGloballyUniqueID & | serviceID | ) |
BOOL H323PeerElement::ServiceRelease | ( | const OpalGloballyUniqueID & | serviceID, | |
unsigned | reason | |||
) |
Send a service release
BOOL H323PeerElement::AddDescriptor | ( | const OpalGloballyUniqueID & | descriptorID, | |
const PStringArray & | aliases, | |||
const H323TransportAddressArray & | transportAddrs, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 , |
|||
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::AddDescriptor | ( | const OpalGloballyUniqueID & | descriptorID, | |
const H225_ArrayOf_AliasAddress & | aliases, | |||
const H323TransportAddressArray & | transportAddrs, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 , |
|||
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::AddDescriptor | ( | const OpalGloballyUniqueID & | descriptorID, | |
const H225_ArrayOf_AliasAddress & | aliases, | |||
const H225_ArrayOf_AliasAddress & | transportAddr, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 , |
|||
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::AddDescriptor | ( | const OpalGloballyUniqueID & | descriptorID, | |
const POrdinalKey & | creator, | |||
const H225_ArrayOf_AliasAddress & | alias, | |||
const H225_ArrayOf_AliasAddress & | transportAddresses, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 , |
|||
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::AddDescriptor | ( | const OpalGloballyUniqueID & | descriptorID, | |
const POrdinalKey & | creator, | |||
const H501_ArrayOf_AddressTemplate & | addressTemplates, | |||
const PTime & | updateTime, | |||
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::DeleteDescriptor | ( | const PString & | alias, | |
BOOL | now = FALSE | |||
) |
Remove a descriptor from the local table
BOOL H323PeerElement::DeleteDescriptor | ( | const H225_AliasAddress & | alias, | |
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::DeleteDescriptor | ( | const OpalGloballyUniqueID & | descriptorID, | |
BOOL | now = FALSE | |||
) |
BOOL H323PeerElement::AccessRequest | ( | const PString & | searchAlias, | |
PStringArray & | destAliases, | |||
H323TransportAddress & | transportAddress, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 | |||
) |
Request access to an alias
BOOL H323PeerElement::AccessRequest | ( | const PString & | searchAlias, | |
H225_ArrayOf_AliasAddress & | destAliases, | |||
H323TransportAddress & | transportAddress, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 | |||
) |
BOOL H323PeerElement::AccessRequest | ( | const H225_AliasAddress & | searchAlias, | |
H225_ArrayOf_AliasAddress & | destAliases, | |||
H323TransportAddress & | transportAddress, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 | |||
) |
BOOL H323PeerElement::AccessRequest | ( | const H225_AliasAddress & | alias, | |
H225_ArrayOf_AliasAddress & | destAliases, | |||
H225_AliasAddress & | transportAddress, | |||
unsigned | options = H323PeerElementDescriptor::Protocol_H323 | |||
) |
BOOL H323PeerElement::UpdateDescriptor | ( | H323PeerElementDescriptor * | descriptor | ) |
BOOL H323PeerElement::UpdateDescriptor | ( | H323PeerElementDescriptor * | descriptor, | |
H501_UpdateInformation_updateType::Choices | updateType | |||
) |
Error H323PeerElement::SendUpdateDescriptorByID | ( | const OpalGloballyUniqueID & | serviceID, | |
H323PeerElementDescriptor * | descriptor, | |||
H501_UpdateInformation_updateType::Choices | updateType | |||
) |
Error H323PeerElement::SendUpdateDescriptorByAddr | ( | const H323TransportAddress & | peer, | |
H323PeerElementDescriptor * | descriptor, | |||
H501_UpdateInformation_updateType::Choices | updateType | |||
) |
Error H323PeerElement::SendAccessRequestByID | ( | const OpalGloballyUniqueID & | peerID, | |
H501PDU & | request, | |||
H501PDU & | confirmPDU | |||
) |
Error H323PeerElement::SendAccessRequestByAddr | ( | const H323TransportAddress & | peerAddr, | |
H501PDU & | request, | |||
H501PDU & | confirmPDU | |||
) |
BOOL H323PeerElement::MakeRequest | ( | H323_AnnexG::Request & | request | ) |
virtual void H323PeerElement::OnAddServiceRelationship | ( | const H323TransportAddress & | ) | [inline, virtual] |
virtual void H323PeerElement::OnRemoveServiceRelationship | ( | const H323TransportAddress & | ) | [inline, virtual] |
virtual void H323PeerElement::OnNewDescriptor | ( | const H323PeerElementDescriptor & | ) | [inline, virtual] |
virtual void H323PeerElement::OnUpdateDescriptor | ( | const H323PeerElementDescriptor & | ) | [inline, virtual] |
virtual void H323PeerElement::OnRemoveDescriptor | ( | const H323PeerElementDescriptor & | ) | [inline, virtual] |
virtual H323Transaction::Response H323PeerElement::OnServiceRequest | ( | H501ServiceRequest & | info | ) | [virtual] |
virtual H323Transaction::Response H323PeerElement::OnDescriptorUpdate | ( | H501DescriptorUpdate & | info | ) | [virtual] |
virtual H323Transaction::Response H323PeerElement::OnAccessRequest | ( | H501AccessRequest & | info | ) | [virtual] |
BOOL H323PeerElement::OnReceiveServiceRequest | ( | const H501PDU & | pdu, | |
const H501_ServiceRequest & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
BOOL H323PeerElement::OnReceiveServiceConfirmation | ( | const H501PDU & | pdu, | |
const H501_ServiceConfirmation & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
BOOL H323PeerElement::OnReceiveDescriptorUpdate | ( | const H501PDU & | pdu, | |
const H501_DescriptorUpdate & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
BOOL H323PeerElement::OnReceiveDescriptorUpdateACK | ( | const H501PDU & | pdu, | |
const H501_DescriptorUpdateAck & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
BOOL H323PeerElement::OnReceiveAccessRequest | ( | const H501PDU & | pdu, | |
const H501_AccessRequest & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
BOOL H323PeerElement::OnReceiveAccessConfirmation | ( | const H501PDU & | pdu, | |
const H501_AccessConfirmation & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
BOOL H323PeerElement::OnReceiveAccessRejection | ( | const H501PDU & | pdu, | |
const H501_AccessRejection & | pduBody | |||
) | [virtual] |
Reimplemented from H323_AnnexG.
void H323PeerElement::Construct | ( | ) | [protected] |
Reimplemented from H323_AnnexG.
Error H323PeerElement::SendUpdateDescriptor | ( | H501PDU & | pdu, | |
const H323TransportAddress & | peer, | |||
H323PeerElementDescriptor * | descriptor, | |||
H501_UpdateInformation_updateType::Choices | updateType | |||
) | [protected] |
BOOL H323PeerElement::OnRemoteServiceRelationshipDisappeared | ( | OpalGloballyUniqueID & | serviceID, | |
const H323TransportAddress & | peer | |||
) | [protected] |
void H323PeerElement::InternalRemoveServiceRelationship | ( | const H323TransportAddress & | peer | ) | [protected] |
H323Transaction::Response H323PeerElement::HandleServiceRequest | ( | H501ServiceRequest & | info | ) | [protected] |
virtual H323PeerElementDescriptor* H323PeerElement::CreateDescriptor | ( | const OpalGloballyUniqueID & | descriptorID | ) | [protected, virtual] |
virtual H323PeerElementServiceRelationship* H323PeerElement::CreateServiceRelationship | ( | ) | [protected, virtual] |
virtual AliasKey* H323PeerElement::CreateAliasKey | ( | const H225_AliasAddress & | alias, | |
const OpalGloballyUniqueID & | id, | |||
PINDEX | pos, | |||
BOOL | wild = FALSE | |||
) | [protected, virtual] |
void H323PeerElement::RemoveDescriptorInformation | ( | const H501_ArrayOf_AddressTemplate & | addressTemplates | ) | [protected] |
H323PeerElement::PDECLARE_NOTIFIER | ( | PThread | , | |
H323PeerElement | , | |||
MonitorMain | ||||
) | [protected] |
H323PeerElement::PDECLARE_NOTIFIER | ( | PThread | , | |
H323PeerElement | , | |||
UpdateAllDescriptors | ||||
) | [protected] |
H323PeerElement::PDECLARE_NOTIFIER | ( | PTimer | , | |
H323PeerElement | , | |||
TickleMonitor | ||||
) | [protected] |
H323PeerElement::PDICTIONARY | ( | StringToOrdinalKey | , | |
PString | , | |||
POrdinalKey | ||||
) | [protected] |
H323PeerElement::PSORTED_LIST | ( | AliasKeyList | , | |
H225_AliasAddress | ||||
) | [protected] |
PMutex H323PeerElement::localNameMutex [protected] |
PString H323PeerElement::localIdentifier [protected] |
PString H323PeerElement::domainName [protected] |
PSemaphore H323PeerElement::requestMutex [protected] |
PThread* H323PeerElement::monitor [protected] |
BOOL H323PeerElement::monitorStop [protected] |
PSyncPoint H323PeerElement::monitorTickle [protected] |
PMutex H323PeerElement::basePeerOrdinalMutex [protected] |
PINDEX H323PeerElement::basePeerOrdinal [protected] |
PSafeSortedList<H323PeerElementServiceRelationship> H323PeerElement::localServiceRelationships [protected] |
PMutex H323PeerElement::localPeerListMutex [protected] |
POrdinalSet H323PeerElement::localServiceOrdinals [protected] |
PMutex H323PeerElement::remotePeerListMutex [protected] |
PSafeSortedList<H323PeerElementServiceRelationship> H323PeerElement::remoteServiceRelationships [protected] |
PStringToString H323PeerElement::remotePeerAddrToServiceID [protected] |
StringToOrdinalKey H323PeerElement::remotePeerAddrToOrdinalKey [protected] |
PSafeSortedList<H323PeerElementDescriptor> H323PeerElement::descriptors [protected] |
PMutex H323PeerElement::aliasMutex [protected] |
AliasKeyList H323PeerElement::transportAddressToDescriptorID [protected] |
AliasKeyList H323PeerElement::specificAliasToDescriptorID [protected] |
AliasKeyList H323PeerElement::wildcardAliasToDescriptorID [protected] |