www.pudn.com > openh323-v1_15_1-src.zip > h501pdu.h


/* 
 * h501pdu.h 
 * 
 * H.501 protocol handler 
 * 
 * Open H323 Library 
 * 
 * Copyright (c) 2003 Equivalence Pty. Ltd. 
 * 
 * The contents of this file are subject to the Mozilla Public License 
 * Version 1.0 (the "License"); you may not use this file except in 
 * compliance with the License. You may obtain a copy of the License at 
 * http://www.mozilla.org/MPL/ 
 * 
 * Software distributed under the License is distributed on an "AS IS" 
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 
 * the License for the specific language governing rights and limitations 
 * under the License. 
 * 
 * The Original Code is Open H323 Library. 
 * 
 * The Initial Developer of the Original Code is Equivalence Pty. Ltd. 
 * 
 * Contributor(s): ______________________________________. 
 * 
 * $Log: h501pdu.h,v $ 
 * Revision 1.10  2003/04/10 01:03:39  craigs 
 * Changed to allow reply address to be a list 
 * 
 * Revision 1.9  2003/03/28 05:08:16  robertj 
 * Added delay parameter to BuildRequestInProgress 
 * 
 * Revision 1.8  2003/03/25 04:56:17  robertj 
 * Fixed issues to do with multiple inheritence in transaction reply cache. 
 * 
 * Revision 1.7  2003/03/20 01:51:07  robertj 
 * More abstraction of H.225 RAS and H.501 protocols transaction handling. 
 * 
 * Revision 1.6  2003/03/18 13:58:16  craigs 
 * More H.501 implementation 
 * 
 * Revision 1.5  2003/03/17 13:19:49  craigs 
 * More H501 implementation 
 * 
 * Revision 1.4  2003/03/14 06:00:42  craigs 
 * More updates 
 * 
 * Revision 1.3  2003/03/01 00:23:42  craigs 
 * New PeerElement implementation 
 * 
 * Revision 1.2  2003/02/25 06:48:15  robertj 
 * More work on PDU transaction abstraction. 
 * 
 * Revision 1.1  2003/02/21 05:28:39  craigs 
 * Factored out code for user with peer elements 
 * 
 */ 
 
#ifndef __OPAL_H501PDU_H 
#define __OPAL_H501PDU_H 
 
#ifdef P_USE_PRAGMA 
#pragma interface 
#endif 
 
 
#include  
 
#include "transports.h" 
#include "h323trans.h" 
#include "h501.h" 
 
class H323_AnnexG; 
 
/**Wrapper class for the H501 Annex G channel. 
 */ 
class H501PDU : public H501_Message, public H323TransactionPDU 
{ 
  PCLASSINFO(H501PDU, H501_Message); 
 
  public: 
    H501PDU(); 
 
    // overrides from PObject 
    virtual PObject * Clone() const; 
 
    // overrides from H323TransactionPDU 
    virtual PASN_Object & GetPDU(); 
    virtual PASN_Choice & GetChoice(); 
    virtual const PASN_Object & GetPDU() const; 
    virtual const PASN_Choice & GetChoice() const; 
    virtual unsigned GetSequenceNumber() const; 
    virtual unsigned GetRequestInProgressDelay() const; 
#if PTRACING 
    virtual const char * GetProtocolName() const; 
#endif 
    virtual H323TransactionPDU * ClonePDU() const; 
    virtual void DeletePDU(); 
 
    // new functions 
    H501_ServiceRequest               & BuildServiceRequest              (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_ServiceConfirmation          & BuildServiceConfirmation         (unsigned seqnum); 
    H501_ServiceRejection             & BuildServiceRejection            (unsigned seqnum, unsigned reason); 
    H501_ServiceRelease               & BuildServiceRelease              (unsigned seqnum); 
    H501_DescriptorRequest            & BuildDescriptorRequest           (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_DescriptorConfirmation       & BuildDescriptorConfirmation      (unsigned seqnum); 
    H501_DescriptorRejection          & BuildDescriptorRejection         (unsigned seqnum, unsigned reason); 
    H501_DescriptorIDRequest          & BuildDescriptorIDRequest         (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_DescriptorIDConfirmation     & BuildDescriptorIDConfirmation    (unsigned seqnum); 
    H501_DescriptorIDRejection        & BuildDescriptorIDRejection       (unsigned seqnum, unsigned reason); 
    H501_DescriptorUpdate             & BuildDescriptorUpdate            (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_DescriptorUpdateAck          & BuildDescriptorUpdateAck         (unsigned seqnum); 
    H501_AccessRequest                & BuildAccessRequest               (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_AccessConfirmation           & BuildAccessConfirmation          (unsigned seqnum); 
    H501_AccessRejection              & BuildAccessRejection             (unsigned seqnum, int reason); 
    H501_RequestInProgress            & BuildRequestInProgress           (unsigned seqnum, unsigned delay); 
    H501_NonStandardRequest           & BuildNonStandardRequest          (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_NonStandardConfirmation      & BuildNonStandardConfirmation     (unsigned seqnum); 
    H501_NonStandardRejection         & BuildNonStandardRejection        (unsigned seqnum, unsigned reason); 
    H501_UnknownMessageResponse       & BuildUnknownMessageResponse      (unsigned seqnum); 
    H501_UsageRequest                 & BuildUsageRequest                (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_UsageConfirmation            & BuildUsageConfirmation           (unsigned seqnum); 
    H501_UsageIndicationConfirmation  & BuildUsageIndicationConfirmation (unsigned seqnum); 
    H501_UsageIndicationRejection     & BuildUsageIndicationRejection    (unsigned seqnum, unsigned reason); 
    H501_UsageRejection               & BuildUsageRejection              (unsigned seqnum); 
    H501_ValidationRequest            & BuildValidationRequest           (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_ValidationConfirmation       & BuildValidationConfirmation      (unsigned seqnum); 
    H501_ValidationRejection          & BuildValidationRejection         (unsigned seqnum, unsigned reason); 
    H501_AuthenticationRequest        & BuildAuthenticationRequest       (unsigned seqnum, const H323TransportAddressArray & reply); 
    H501_AuthenticationConfirmation   & BuildAuthenticationConfirmation  (unsigned seqnum); 
    H501_AuthenticationRejection      & BuildAuthenticationRejection     (unsigned seqnum, unsigned reason); 
 
  protected: 
    void BuildRequest(unsigned tag, unsigned seqnum, const H323TransportAddressArray & replyAddr); 
    void BuildPDU(unsigned tag, unsigned seqnum); 
}; 
 
#endif  // __OPAL_H501PDU_H 
 
 
/////////////////////////////////////////////////////////////////////////////