Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

H323PeerElement Class Reference

#include <peclient.h>

Inheritance diagram for H323PeerElement:

H323_AnnexG H323Transactor List of all members.

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)
Construction
 H323PeerElement (H323EndPoint &endpoint, H323Transport *transport=NULL)
 H323PeerElement (H323EndPoint &endpoint, const H323TransportAddress &addr)
 ~H323PeerElement ()
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

Detailed Description

This class embodies the an H.323 AnnexG server/client


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
LocalServiceRelationshipOrdinal 
NoServiceRelationshipOrdinal 
RemoteServiceRelationshipOrdinal 

enum H323PeerElement::Error
 

Enumeration values:
Confirmed 
Rejected 
NoResponse 
NoServiceRelationship 
ServiceRelationshipReestablished 


Constructor & Destructor Documentation

H323PeerElement::H323PeerElement (  H323EndPoint &  endpoint,
H323Transport *  transport = NULL
) 
 

Create a new client.

Parameters:
endpoint  Endpoint gatekeeper is associated with.

H323PeerElement::H323PeerElement (  H323EndPoint &  endpoint,
const H323TransportAddress &  addr
) 
 

Parameters:
endpoint  Endpoint gatekeeper is associated with.

H323PeerElement::~H323PeerElement (   ) 
 

Destroy client.


Member Function Documentation

BOOL H323PeerElement::AccessRequest (  const H225_AliasAddress &  alias,
H225_ArrayOf_AliasAddress &  destAliases,
H225_AliasAddress &  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 PString &  searchAlias,
H225_ArrayOf_AliasAddress &  destAliases,
H323TransportAddress &  transportAddress,
unsigned  options = H323PeerElementDescriptor::Protocol_H323
) 
 

BOOL H323PeerElement::AccessRequest (  const PString &  searchAlias,
PStringArray &  destAliases,
H323TransportAddress &  transportAddress,
unsigned  options = H323PeerElementDescriptor::Protocol_H323
) 
 

Request access to an alias

BOOL H323PeerElement::AddDescriptor (  const OpalGloballyUniqueID &  descriptorID,
const POrdinalKey &  creator,
const H501_ArrayOf_AddressTemplate &  addressTemplates,
const PTime &  updateTime,
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 H225_ArrayOf_AliasAddress &  aliases,
const H225_ArrayOf_AliasAddress &  transportAddr,
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 PStringArray &  aliases,
const H323TransportAddressArray &  transportAddrs,
unsigned  options = H323PeerElementDescriptor::Protocol_H323,
BOOL  now = FALSE
) 
 

BOOL H323PeerElement::AddServiceRelationship (  const H323TransportAddress &  peer,
OpalGloballyUniqueID &  serviceID,
BOOL  keepTrying = TRUE
) 
 

BOOL H323PeerElement::AddServiceRelationship (  const H323TransportAddress &  peer,
BOOL  keepTrying = TRUE
) 
 

void H323PeerElement::Construct (   )  [protected]
 

Reimplemented from H323_AnnexG.

virtual AliasKey* H323PeerElement::CreateAliasKey (  const H225_AliasAddress &  alias,
const OpalGloballyUniqueID &  id,
PINDEX  pos,
BOOL  wild = FALSE
)  [protected, virtual]
 

virtual H323PeerElementDescriptor* H323PeerElement::CreateDescriptor (  const OpalGloballyUniqueID &  descriptorID  )  [protected, virtual]
 

virtual H323PeerElementServiceRelationship* H323PeerElement::CreateServiceRelationship (   )  [protected, virtual]
 

BOOL H323PeerElement::DeleteDescriptor (  const OpalGloballyUniqueID &  descriptorID,
BOOL  now = FALSE
) 
 

BOOL H323PeerElement::DeleteDescriptor (  const H225_AliasAddress &  alias,
BOOL  now = FALSE
) 
 

BOOL H323PeerElement::DeleteDescriptor (  const PString &  alias,
BOOL  now = FALSE
) 
 

Remove a descriptor from the local table

PString H323PeerElement::GetDomainName (   )  const
 

PSafePtr<H323PeerElementDescriptor> H323PeerElement::GetFirstDescriptor (  PSafetyMode  mode = PSafeReference  )  [inline]
 

PSafePtr<H323PeerElementServiceRelationship> H323PeerElement::GetFirstLocalServiceRelationship (  PSafetyMode  mode = PSafeReference  )  [inline]
 

PSafePtr<H323PeerElementServiceRelationship> H323PeerElement::GetFirstRemoteServiceRelationship (  PSafetyMode  mode = PSafeReference  )  [inline]
 

PString H323PeerElement::GetLocalName (   )  const
 

H323Transaction::Response H323PeerElement::HandleServiceRequest (  H501ServiceRequest &  info  )  [protected]
 

void H323PeerElement::InternalRemoveServiceRelationship (  const H323TransportAddress &  peer  )  [protected]
 

BOOL H323PeerElement::MakeRequest (  H323_AnnexG::Request &  request  ) 
 

virtual H323Transaction::Response H323PeerElement::OnAccessRequest (  H501AccessRequest &  info  )  [virtual]
 

virtual void H323PeerElement::OnAddServiceRelationship (  const H323TransportAddress &   )  [inline, virtual]
 

virtual H323Transaction::Response H323PeerElement::OnDescriptorUpdate (  H501DescriptorUpdate &  info  )  [virtual]
 

virtual void H323PeerElement::OnNewDescriptor (  const H323PeerElementDescriptor &   )  [inline, virtual]
 

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.

BOOL H323PeerElement::OnReceiveAccessRequest (  const H501PDU &  pdu,
const H501_AccessRequest &  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::OnReceiveServiceConfirmation (  const H501PDU &  pdu,
const H501_ServiceConfirmation &  pduBody
)  [virtual]
 

Reimplemented from H323_AnnexG.

BOOL H323PeerElement::OnReceiveServiceRequest (  const H501PDU &  pdu,
const H501_ServiceRequest &  pduBody
)  [virtual]
 

Reimplemented from H323_AnnexG.

BOOL H323PeerElement::OnRemoteServiceRelationshipDisappeared (  OpalGloballyUniqueID &  serviceID,
const H323TransportAddress &  peer
)  [protected]
 

virtual void H323PeerElement::OnRemoveDescriptor (  const H323PeerElementDescriptor &   )  [inline, virtual]
 

virtual void H323PeerElement::OnRemoveServiceRelationship (  const H323TransportAddress &   )  [inline, virtual]
 

virtual H323Transaction::Response H323PeerElement::OnServiceRequest (  H501ServiceRequest &  info  )  [virtual]
 

virtual void H323PeerElement::OnUpdateDescriptor (  const H323PeerElementDescriptor &   )  [inline, virtual]
 

H323PeerElement::PDECLARE_NOTIFIER (  PTimer  ,
H323PeerElement  ,
TickleMonitor 
)  [protected]
 

H323PeerElement::PDECLARE_NOTIFIER (  PThread  ,
H323PeerElement  ,
UpdateAllDescriptors 
)  [protected]
 

H323PeerElement::PDECLARE_NOTIFIER (  PThread  ,
H323PeerElement  ,
MonitorMain 
)  [protected]
 

H323PeerElement::PDICTIONARY (  StringToOrdinalKey  ,
PString  ,
POrdinalKey 
)  [protected]
 

void H323PeerElement::PrintOn (  ostream &  strm  )  const
 

Print the name of the peer element.

Parameters:
strm  Stream to print to.

Reimplemented from H323_AnnexG.

H323PeerElement::PSORTED_LIST (  AliasKeyList  ,
H225_AliasAddress 
)  [protected]
 

BOOL H323PeerElement::RemoveAllServiceRelationships (   ) 
 

void H323PeerElement::RemoveDescriptorInformation (  const H501_ArrayOf_AddressTemplate &  addressTemplates  )  [protected]
 

BOOL H323PeerElement::RemoveServiceRelationship (  const H323TransportAddress &  peer,
int  reason = H501_ServiceReleaseReason::e_terminated
) 
 

BOOL H323PeerElement::RemoveServiceRelationship (  const OpalGloballyUniqueID &  serviceID,
int  reason = H501_ServiceReleaseReason::e_terminated
) 
 

Error H323PeerElement::SendAccessRequestByAddr (  const H323TransportAddress &  peerAddr,
H501PDU &  request,
H501PDU &  confirmPDU
) 
 

Error H323PeerElement::SendAccessRequestByID (  const OpalGloballyUniqueID &  peerID,
H501PDU &  request,
H501PDU &  confirmPDU
) 
 

Error H323PeerElement::SendUpdateDescriptor (  H501PDU &  pdu,
const H323TransportAddress &  peer,
H323PeerElementDescriptor *  descriptor,
H501_UpdateInformation_updateType::Choices  updateType
)  [protected]
 

Error H323PeerElement::SendUpdateDescriptorByAddr (  const H323TransportAddress &  peer,
H323PeerElementDescriptor *  descriptor,
H501_UpdateInformation_updateType::Choices  updateType
) 
 

Error H323PeerElement::SendUpdateDescriptorByID (  const OpalGloballyUniqueID &  serviceID,
H323PeerElementDescriptor *  descriptor,
H501_UpdateInformation_updateType::Choices  updateType
) 
 

BOOL H323PeerElement::ServiceRelease (  const OpalGloballyUniqueID &  serviceID,
unsigned  reason
) 
 

Send a service release

Error H323PeerElement::ServiceRequestByAddr (  const H323TransportAddress &  peer,
OpalGloballyUniqueID &  serviceID
) 
 

Error H323PeerElement::ServiceRequestByAddr (  const H323TransportAddress &  peer  ) 
 

Error H323PeerElement::ServiceRequestByID (  OpalGloballyUniqueID &  serviceID  ) 
 

void H323PeerElement::SetDomainName (  const PString &  name  ) 
 

void H323PeerElement::SetLocalName (  const PString &  name  ) 
 

BOOL H323PeerElement::SetOnlyServiceRelationship (  const PString &  peer,
BOOL  keepTrying = TRUE
) 
 

Send a service request

BOOL H323PeerElement::UpdateDescriptor (  H323PeerElementDescriptor *  descriptor,
H501_UpdateInformation_updateType::Choices  updateType
) 
 

BOOL H323PeerElement::UpdateDescriptor (  H323PeerElementDescriptor *  descriptor  ) 
 


Member Data Documentation

PMutex H323PeerElement::aliasMutex [protected]
 

PINDEX H323PeerElement::basePeerOrdinal [protected]
 

PMutex H323PeerElement::basePeerOrdinalMutex [protected]
 

PSafeSortedList<H323PeerElementDescriptor> H323PeerElement::descriptors [protected]
 

PString H323PeerElement::domainName [protected]
 

PString H323PeerElement::localIdentifier [protected]
 

PMutex H323PeerElement::localNameMutex [protected]
 

PMutex H323PeerElement::localPeerListMutex [protected]
 

POrdinalSet H323PeerElement::localServiceOrdinals [protected]
 

PSafeSortedList<H323PeerElementServiceRelationship> H323PeerElement::localServiceRelationships [protected]
 

PThread* H323PeerElement::monitor [protected]
 

BOOL H323PeerElement::monitorStop [protected]
 

PSyncPoint H323PeerElement::monitorTickle [protected]
 

StringToOrdinalKey H323PeerElement::remotePeerAddrToOrdinalKey [protected]
 

PStringToString H323PeerElement::remotePeerAddrToServiceID [protected]
 

PMutex H323PeerElement::remotePeerListMutex [protected]
 

PSafeSortedList<H323PeerElementServiceRelationship> H323PeerElement::remoteServiceRelationships [protected]
 

PSemaphore H323PeerElement::requestMutex [protected]
 

AliasKeyList H323PeerElement::specificAliasToDescriptorID [protected]
 

AliasKeyList H323PeerElement::transportAddressToDescriptorID [protected]
 

AliasKeyList H323PeerElement::wildcardAliasToDescriptorID [protected]
 


The documentation for this class was generated from the following file:
Generated on Fri Jun 16 09:22:56 2006 for OPAL by  doxygen 1.4.2