# h323h224.h

Go to the documentation of this file.

    00001 /*
    00002  * h323h224.h
    00003  *
    00004  * H.323 H.224 logical channel establishment implementation for the
    00005  * OpenH323 Project.
    00006  *
    00007  * Copyright (c) 2006 Network for Educational Technology, ETH Zurich.
    00008  * Written by Hannes Friederich.
    00009  *
    00010  * The contents of this file are subject to the Mozilla Public License
    00011  * Version 1.0 (the "License"); you may not use this file except in
    00012  * compliance with the License. You may obtain a copy of the License at
    00013  * http://www.mozilla.org/MPL/
    00014  *
    00015  * Software distributed under the License is distributed on an "AS IS"
    00016  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00017  * the License for the specific language governing rights and limitations
    00018  * under the License.
    00019  *
    00020  * Contributor(s): ______________________________________.
    00021  *
    00022  * $Revision: 22709 $
    00023  * $Author: rjongbloed $
    00024  * $Date: 2009-05-24 19:39:16 -0500 (Sun, 24 May 2009) $
    00025  */
    00026
    00027 #ifndef OPAL_H224_H323H224_H
    00028 #define OPAL_H224_H323H224_H
    00029
    00030 #ifdef P_USE_PRAGMA
    00031 #pragma interface
    00032 #endif
    00033
    00034 #include <opal/buildopts.h>
    00035
    00036 #if OPAL_HAS_H224
    00037 #if OPAL_H323
    00038
    00039 #include <h323/h323caps.h>
    00040
    00041 #include <h224/h224.h>
    00042 #include <h224/h224handler.h>
    00043
    00044
    00047 class H323_H224_AnnexQCapability : public H323DataCapability
    00048 {
    00049   PCLASSINFO(H323_H224_AnnexQCapability, H323DataCapability);
    00050
    00051 public:
    00052
    00053   H323_H224_AnnexQCapability();
    00054   ~H323_H224_AnnexQCapability();
    00055
    00056   Comparison Compare(const PObject & obj) const;
    00057
    00058   virtual PObject * Clone() const;
    00059
    00060   virtual unsigned GetSubType() const;
    00061
    00062   virtual PString GetFormatName() const;
    00063
    00064   virtual H323Channel * CreateChannel(H323Connection & connection,
    00065                                       H323Channel::Directions direction,
    00066                                       unsigned int sessionID,
    00067                                       const H245_H2250LogicalChannelParameters * params) const;
    00068
    00069   virtual PBoolean OnSendingPDU(H245_DataApplicationCapability & pdu) const;
    00070   virtual PBoolean OnSendingPDU(H245_DataMode & pdu) const;
    00071   virtual PBoolean OnReceivedPDU(const H245_DataApplicationCapability & pdu);
    00072 };
    00073
    00074
    00077 class H323_H224_HDLCTunnelingCapability : public H323DataCapability
    00078 {
    00079   PCLASSINFO(H323_H224_HDLCTunnelingCapability, H323DataCapability);
    00080
    00081 public:
    00082
    00083   H323_H224_HDLCTunnelingCapability();
    00084   ~H323_H224_HDLCTunnelingCapability();
    00085
    00086   Comparison Compare(const PObject & obj) const;
    00087
    00088   virtual PObject * Clone() const;
    00089
    00090   virtual unsigned GetSubType() const;
    00091
    00092   virtual PString GetFormatName() const;
    00093
    00094   virtual H323Channel * CreateChannel(H323Connection & connection,
    00095                                       H323Channel::Directions direction,
    00096                                       unsigned int sessionID,
    00097                                       const H245_H2250LogicalChannelParameters * params) const;
    00098
    00099   virtual PBoolean OnSendingPDU(H245_DataApplicationCapability & pdu) const;
    00100   virtual PBoolean OnSendingPDU(H245_DataMode & pdu) const;
    00101   virtual PBoolean OnReceivedPDU(const H245_DataApplicationCapability & pdu);
    00102
    00103 };
    00104
    00105 #define OPAL_REGISTER_H224_CAPABILITY() \
    00106   H323_REGISTER_CAPABILITY(H323_H224_AnnexQCapability, GetOpalH224_H323AnnexQ().GetName()); \
    00107   H323_REGISTER_CAPABILITY(H323_H224_HDLCTunnelingCapability, GetOpalH224_HDLCTunneling().GetName()); \
    00108
    00109
    00110 #endif // OPAL_H323
    00111
    00112 #endif // OPAL_HAS_H224
    00113
    00114 #endif // OPAL_H224_H323H224_H