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: 19279 $
00027  * $Author: rjongbloed $
00028  * $Date: 2008-01-17 04:08:34 +0000 (Thu, 17 Jan 2008) $
00029  */
00030 
00031 #ifndef __OPAL_H323T120_H
00032 #define __OPAL_H323T120_H
00033 
00034 #ifdef P_USE_PRAGMA
00035 #pragma interface
00036 #endif
00037 
00038 
00039 #include <h323/h323caps.h>
00040 
00041 
00042 class OpalT120Protocol;
00043 
00044 
00046 
00049 class H323_T120Capability : public H323DataCapability
00050 {
00051     PCLASSINFO(H323_T120Capability, H323DataCapability);
00052   public:
00057     H323_T120Capability();
00059 
00064     virtual PObject * Clone() const;
00066 
00075     virtual unsigned GetSubType() const;
00076 
00079     virtual PString GetFormatName() const;
00081 
00086     virtual H323Channel * CreateChannel(
00087       H323Connection & connection,    
00088       H323Channel::Directions dir,    
00089       unsigned sessionID,             
00090       const H245_H2250LogicalChannelParameters * param
00092     ) const;
00094 
00105     virtual PBoolean OnSendingPDU(
00106       H245_DataApplicationCapability & pdu
00107     ) const;
00108 
00117     virtual PBoolean OnSendingPDU(
00118       H245_DataMode & pdu  
00119     ) const;
00120 
00127     virtual PBoolean OnSendingPDU(
00128       H245_DataProtocolCapability & pdu  
00129     ) const;
00130 
00138     virtual PBoolean OnReceivedPDU(
00139       const H245_DataApplicationCapability & pdu  
00140     );
00142 
00148     PBoolean GetDynamicPortCapability() const { return dynamicPortCapability; }
00149 
00153     void SetDynamicPortCapability(PBoolean dynamic) { dynamicPortCapability = dynamic; }
00155 
00156   protected:
00157     PBoolean dynamicPortCapability;
00158 };
00159 
00160 
00163 class H323_T120Channel : public H323DataChannel
00164 {
00165     PCLASSINFO(H323_T120Channel, H323DataChannel);
00166   public:
00171     H323_T120Channel(
00172       H323Connection & connection,        
00173       const H323Capability & capability,  
00174       Directions direction,               
00175       unsigned sessionID                  
00176     );
00178 
00188     virtual void Receive();
00189 
00198     virtual void Transmit();
00199 
00202     virtual PBoolean OnSendingPDU(
00203       H245_OpenLogicalChannel & openPDU  
00204     ) const;
00205 
00209     virtual void OnSendOpenAck(
00210       const H245_OpenLogicalChannel & open,   
00211       H245_OpenLogicalChannelAck & ack        
00212     ) const;
00213 
00221     virtual PBoolean OnReceivedPDU(
00222       const H245_OpenLogicalChannel & pdu,    
00223       unsigned & errorCode                    
00224     );
00225 
00233     virtual PBoolean OnReceivedAckPDU(
00234       const H245_OpenLogicalChannelAck & pdu 
00235     );
00237 
00238     virtual void HandleChannel();
00239 
00240   protected:
00241     OpalT120Protocol * t120handler;
00242 };
00243 
00244 
00245 #endif // __OPAL_H323T120_H
00246 
00247 

Generated on Mon Sep 15 11:49:05 2008 for OPAL by  doxygen 1.5.1