OPAL  Version 3.14.3
h323t120.h
Go to the documentation of this file.
1 /*
2  * h323t120.h
3  *
4  * H.323 T.120 logical channel establishment
5  *
6  * Open H323 Library
7  *
8  * Copyright (c) 2001 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open H323 Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Contributor(s): ______________________________________.
25  *
26  * $Revision: 29536 $
27  * $Author: rjongbloed $
28  * $Date: 2013-04-19 18:55:15 +1000 (Fri, 19 Apr 2013) $
29  */
30 
31 #ifndef OPAL_T120_H323T120_H
32 #define OPAL_T120_H323T120_H
33 
34 #ifdef P_USE_PRAGMA
35 #pragma interface
36 #endif
37 
38 #include <opal_config.h>
39 
40 #include <h323/h323caps.h>
41 
42 
43 class OpalT120Protocol;
44 
45 
47 
51 {
53  public:
60 
65  virtual PObject * Clone() const;
67 
76  virtual unsigned GetSubType() const;
77 
80  virtual PString GetFormatName() const;
82 
87  virtual H323Channel * CreateChannel(
88  H323Connection & connection,
90  unsigned sessionID,
91  const H245_H2250LogicalChannelParameters * param
93  ) const;
95 
106  virtual PBoolean OnSendingPDU(
107  H245_DataApplicationCapability & pdu
108  ) const;
109 
118  virtual PBoolean OnSendingPDU(
119  H245_DataMode & pdu
120  ) const;
121 
128  virtual PBoolean OnSendingPDU(
129  H245_DataProtocolCapability & pdu
130  ) const;
131 
139  virtual PBoolean OnReceivedPDU(
140  const H245_DataApplicationCapability & pdu
141  );
143 
149  PBoolean GetDynamicPortCapability() const { return dynamicPortCapability; }
150 
154  void SetDynamicPortCapability(PBoolean dynamic) { dynamicPortCapability = dynamic; }
156 
157  protected:
159 };
160 
161 
165 {
166  PCLASSINFO(H323_T120Channel, H323DataChannel);
167  public:
174  const H323Capability & capability,
175  Directions direction,
176  unsigned sessionID
177  );
179 
189  virtual void Receive();
190 
199  virtual void Transmit();
200 
203  virtual PBoolean OnSendingPDU(
204  H245_OpenLogicalChannel & openPDU
205  ) const;
206 
210  virtual void OnSendOpenAck(
211  const H245_OpenLogicalChannel & open,
212  H245_OpenLogicalChannelAck & ack
213  ) const;
214 
222  virtual PBoolean OnReceivedPDU(
223  const H245_OpenLogicalChannel & pdu,
224  unsigned & errorCode
225  );
226 
234  virtual PBoolean OnReceivedAckPDU(
235  const H245_OpenLogicalChannelAck & pdu
236  );
238 
239  virtual void HandleChannel();
240 
241  protected:
243 };
244 
245 
246 #endif // OPAL_T120_H323T120_H
247 
248