OPAL
Version 3.10.4
|
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