h323t120.h

Go to the documentation of this file.
00001 /*
00002  * h323t120.h
00003  *
00004  * H.323 T.120 logical channel establishment
00005  *
00006  * Open H323 Library
00007  *
00008  * Copyright (c) 2001 Equivalence Pty. Ltd.
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  * The Original Code is Open H323 Library.
00021  *
00022  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
00023  *
00024  * Contributor(s): ______________________________________.
00025  *
00026  * $Revision: 21283 $
00027  * $Author: rjongbloed $
00028  * $Date: 2008-10-11 07:10:58 +0000 (Sat, 11 Oct 2008) $
00029  */
00030 
00031 #ifndef OPAL_T120_H323T120_H
00032 #define OPAL_T120_H323T120_H
00033 
00034 #ifdef P_USE_PRAGMA
00035 #pragma interface
00036 #endif
00037 
00038 #include <opal/buildopts.h>
00039 
00040 #include <h323/h323caps.h>
00041 
00042 
00043 class OpalT120Protocol;
00044 
00045 
00047 
00050 class H323_T120Capability : public H323DataCapability
00051 {
00052     PCLASSINFO(H323_T120Capability, H323DataCapability);
00053   public:
00058     H323_T120Capability();
00060 
00065     virtual PObject * Clone() const;
00067 
00076     virtual unsigned GetSubType() const;
00077 
00080     virtual PString GetFormatName() const;
00082 
00087     virtual H323Channel * CreateChannel(
00088       H323Connection & connection,    
00089       H323Channel::Directions dir,    
00090       unsigned sessionID,             
00091       const H245_H2250LogicalChannelParameters * param
00093     ) const;
00095 
00106     virtual PBoolean OnSendingPDU(
00107       H245_DataApplicationCapability & pdu
00108     ) const;
00109 
00118     virtual PBoolean OnSendingPDU(
00119       H245_DataMode & pdu  
00120     ) const;
00121 
00128     virtual PBoolean OnSendingPDU(
00129       H245_DataProtocolCapability & pdu  
00130     ) const;
00131 
00139     virtual PBoolean OnReceivedPDU(
00140       const H245_DataApplicationCapability & pdu  
00141     );
00143 
00149     PBoolean GetDynamicPortCapability() const { return dynamicPortCapability; }
00150 
00154     void SetDynamicPortCapability(PBoolean dynamic) { dynamicPortCapability = dynamic; }
00156 
00157   protected:
00158     PBoolean dynamicPortCapability;
00159 };
00160 
00161 
00164 class H323_T120Channel : public H323DataChannel
00165 {
00166     PCLASSINFO(H323_T120Channel, H323DataChannel);
00167   public:
00172     H323_T120Channel(
00173       H323Connection & connection,        
00174       const H323Capability & capability,  
00175       Directions direction,               
00176       unsigned sessionID                  
00177     );
00179 
00189     virtual void Receive();
00190 
00199     virtual void Transmit();
00200 
00203     virtual PBoolean OnSendingPDU(
00204       H245_OpenLogicalChannel & openPDU  
00205     ) const;
00206 
00210     virtual void OnSendOpenAck(
00211       const H245_OpenLogicalChannel & open,   
00212       H245_OpenLogicalChannelAck & ack        
00213     ) const;
00214 
00222     virtual PBoolean OnReceivedPDU(
00223       const H245_OpenLogicalChannel & pdu,    
00224       unsigned & errorCode                    
00225     );
00226 
00234     virtual PBoolean OnReceivedAckPDU(
00235       const H245_OpenLogicalChannelAck & pdu 
00236     );
00238 
00239     virtual void HandleChannel();
00240 
00241   protected:
00242     OpalT120Protocol * t120handler;
00243 };
00244 
00245 
00246 #endif // OPAL_T120_H323T120_H
00247 
00248 

Generated on Mon Feb 23 02:01:30 2009 for OPAL by  doxygen 1.5.1