H323Transactor Class Reference

Inheritance diagram for H323Transactor:

H225_RAS H323_AnnexG H323Gatekeeper H323GatekeeperListener H323PeerElement List of all members.

Public Member Functions

Construction
 H323Transactor (H323EndPoint &endpoint, H323Transport *transport, WORD localPort, WORD remotePort)
 H323Transactor (H323EndPoint &endpoint, const H323TransportAddress &iface, WORD localPort, WORD remotePort)
 ~H323Transactor ()
Overrides from PObject
void PrintOn (ostream &strm) const
new operations
BOOL SetTransport (const H323TransportAddress &iface)
H323TransportAddressArray GetInterfaceAddresses (BOOL excludeLocalHost=TRUE, H323Transport *associatedTransport=NULL)
virtual BOOL StartChannel ()
virtual void StopChannel ()
virtual H323TransactionPDUCreateTransactionPDU () const=0
virtual BOOL HandleTransaction (const PASN_Object &rawPDU)=0
virtual void OnSendingPDU (PASN_Object &rawPDU)=0
virtual BOOL WritePDU (H323TransactionPDU &pdu)
virtual BOOL WriteTo (H323TransactionPDU &pdu, const H323TransportAddressArray &addresses, BOOL callback=TRUE)
Member variable access
H323EndPointGetEndPoint () const
H323TransportGetTransport () const
void SetCheckResponseCryptoTokens (BOOL value)
BOOL GetCheckResponseCryptoTokens ()

Protected Member Functions

void Construct ()
unsigned GetNextSequenceNumber ()
BOOL SetUpCallSignalAddresses (H225_ArrayOf_TransportAddress &addresses)
virtual BOOL MakeRequest (Request &request)
BOOL CheckForResponse (unsigned, unsigned, const PASN_Choice *=NULL)
BOOL HandleRequestInProgress (const H323TransactionPDU &pdu, unsigned delay)
BOOL CheckCryptoTokens (const H323TransactionPDU &pdu, const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField)
void AgeResponses ()
BOOL SendCachedResponse (const H323TransactionPDU &pdu)

Protected Attributes

H323EndPointendpoint
WORD defaultLocalPort
WORD defaultRemotePort
H323Transporttransport
BOOL checkResponseCryptoTokens
unsigned nextSequenceNumber
PMutex nextSequenceNumberMutex
PDictionary< POrdinalKey,
Request
requests
PMutex requestsMutex
RequestlastRequest
PMutex pduWriteMutex
PSortedList< Responseresponses

Classes

class  Request
class  Response

Detailed Description

Definition at line 152 of file h323trans.h.


Constructor & Destructor Documentation

H323Transactor::H323Transactor ( H323EndPoint endpoint,
H323Transport transport,
WORD  localPort,
WORD  remotePort 
)

Create a new protocol handler.

Parameters:
endpoint  Endpoint gatekeeper is associated with.
transport  Transport over which to communicate.
localPort  Local port to listen on
remotePort  Remote port to connect on

Definition at line 222 of file h323trans.cxx.

References Construct(), and transport.

H323Transactor::H323Transactor ( H323EndPoint endpoint,
const H323TransportAddress iface,
WORD  localPort,
WORD  remotePort 
)

Parameters:
endpoint  Endpoint gatekeeper is associated with.
iface  Local interface over which to communicate.
localPort  Local port to listen on
remotePort  Remote port to connect on

Definition at line 239 of file h323trans.cxx.

References Construct(), H323TransportAddress::GetIpAndPort(), and transport.

H323Transactor::~H323Transactor (  ) 

Destroy protocol handler.

Definition at line 269 of file h323trans.cxx.

References StopChannel().


Member Function Documentation

void H323Transactor::PrintOn ( ostream &  strm  )  const

Print the name of the gatekeeper.

Parameters:
strm  Stream to print to.

Reimplemented in H225_RAS, H323_AnnexG, and H323PeerElement.

Definition at line 275 of file h323trans.cxx.

References defaultRemotePort, H323TransportAddress::GetIpAndPort(), H323Transport::GetRemoteAddress(), and transport.

Referenced by H323PeerElement::PrintOn(), H323_AnnexG::PrintOn(), and H225_RAS::PrintOn().

BOOL H323Transactor::SetTransport ( const H323TransportAddress iface  ) 

Set a new transport for use by the transactor.

Parameters:
iface  Local interface for transport

Definition at line 295 of file h323trans.cxx.

References H323Transport::AcceptFromAny, H323Transport::CleanUpOnTermination(), defaultLocalPort, defaultRemotePort, endpoint, H323TransportAddress::GetIpAndPort(), H323Transport::GetLocalAddress(), H323TransportAddress::IsEquivalent(), pduWriteMutex, H323Transport::SetPromiscuous(), StartChannel(), and transport.

H323TransportAddressArray H323Transactor::GetInterfaceAddresses ( BOOL  excludeLocalHost = TRUE,
H323Transport associatedTransport = NULL 
)

Return the list of addresses used for this peer element

Parameters:
excludeLocalHost  Flag to exclude 127.0.0.1
associatedTransport  Associated transport for precedence and translation

Definition at line 329 of file h323trans.cxx.

References H323Transport::GetLocalAddress(), and transport.

Referenced by H323PeerElement::SendUpdateDescriptor(), and H323PeerElement::ServiceRequestByAddr().

BOOL H323Transactor::StartChannel (  )  [virtual]

Start the channel processing transactions

Definition at line 340 of file h323trans.cxx.

References H323Transport::AttachThread(), and transport.

Referenced by H323TransactionServer::AddListener(), H323PeerElement::Construct(), H323Gatekeeper::MakeRequest(), SetTransport(), and H323Gatekeeper::StartDiscovery().

void H323Transactor::StopChannel (  )  [virtual]

Stop the channel processing transactions. Must be called in each descendants destructor.

Definition at line 353 of file h323trans.cxx.

References H323Transport::CleanUpOnTermination(), and transport.

Referenced by H225_RAS::~H225_RAS(), H323_AnnexG::~H323_AnnexG(), H323Gatekeeper::~H323Gatekeeper(), H323GatekeeperListener::~H323GatekeeperListener(), H323PeerElement::~H323PeerElement(), and ~H323Transactor().

virtual H323TransactionPDU* H323Transactor::CreateTransactionPDU (  )  const [pure virtual]

Create the transaction PDU for reading.

Implemented in H225_RAS, and H323_AnnexG.

virtual BOOL H323Transactor::HandleTransaction ( const PASN_Object &  rawPDU  )  [pure virtual]

Handle and dispatch a transaction PDU

Implemented in H225_RAS, and H323_AnnexG.

virtual void H323Transactor::OnSendingPDU ( PASN_Object &  rawPDU  )  [pure virtual]

Allow for modifications to PDU on send.

Implemented in H225_RAS, and H323_AnnexG.

Referenced by MakeRequest(), and WritePDU().

BOOL H323Transactor::WritePDU ( H323TransactionPDU pdu  )  [virtual]

Write PDU to transport after executing callback.

Definition at line 480 of file h323trans.cxx.

References H323Transport::GetLastReceivedAddress(), H323TransactionPDU::GetPDU(), H323TransactionPDU::GetSequenceNumber(), OnSendingPDU(), pduWriteMutex, responses, transport, and H323TransactionPDU::Write().

Referenced by H323Gatekeeper::OnReceiveBandwidthRequest(), H323Gatekeeper::OnReceiveDisengageRequest(), H323Gatekeeper::OnReceiveInfoRequest(), H323Gatekeeper::OnReceiveUnregistrationRequest(), H323Gatekeeper::SendUnsolicitedIRR(), and WriteTo().

BOOL H323Transactor::WriteTo ( H323TransactionPDU pdu,
const H323TransportAddressArray &  addresses,
BOOL  callback = TRUE 
) [virtual]

Write PDU to transport after executing callback.

Definition at line 498 of file h323trans.cxx.

References H323Transport::ConnectTo(), H323Transport::GetRemoteAddress(), pduWriteMutex, transport, H323TransactionPDU::Write(), and WritePDU().

Referenced by H323Transactor::Request::Poll(), H323PeerElement::ServiceRelease(), and H323Transaction::WritePDU().

H323EndPoint& H323Transactor::GetEndPoint (  )  const [inline]

Get the gatekeepers associated endpoint.

Definition at line 248 of file h323trans.h.

References endpoint.

Referenced by H323GatekeeperGRQ::H323GatekeeperGRQ(), H323GatekeeperRRQ::H323GatekeeperRRQ(), H323RegisteredEndPoint::OnFullRegistration(), and H323Transactor::Request::Poll().

H323Transport& H323Transactor::GetTransport (  )  const [inline]

Get the gatekeepers transport channel.

Definition at line 252 of file h323trans.h.

References transport.

Referenced by H323GatekeeperGRQ::H323GatekeeperGRQ(), H323GatekeeperLRQ::H323GatekeeperLRQ(), H323GatekeeperRRQ::H323GatekeeperRRQ(), H323EndPoint::InternalMakeCall(), and H323EndPoint::UseGatekeeper().

void H323Transactor::SetCheckResponseCryptoTokens ( BOOL  value  )  [inline]

Set flag to check all crypto tokens on responses.

Parameters:
value  New value for checking crypto tokens.

Definition at line 256 of file h323trans.h.

References checkResponseCryptoTokens.

BOOL H323Transactor::GetCheckResponseCryptoTokens (  )  [inline]

Get flag to check all crypto tokens on responses.

Definition at line 262 of file h323trans.h.

References checkResponseCryptoTokens.

Referenced by CheckCryptoTokens().


The documentation for this class was generated from the following files:
Generated on Thu Oct 25 13:45:33 2007 for h323plus by  doxygen 1.5.2