OpenH323 1.18.0
|
00001 // 00002 // t38.h 00003 // 00004 // Code automatically generated by asnparse. 00005 // 00006 00007 #if ! H323_DISABLE_T38 00008 00009 #ifndef __T38_H 00010 #define __T38_H 00011 00012 #ifdef P_USE_PRAGMA 00013 #pragma interface 00014 #endif 00015 00016 #include <ptclib/asner.h> 00017 00018 // 00019 // Type-of-msg 00020 // 00021 00022 class T38_Type_of_msg_t30_indicator; 00023 class T38_Type_of_msg_data; 00024 00025 class T38_Type_of_msg : public PASN_Choice 00026 { 00027 #ifndef PASN_LEANANDMEAN 00028 PCLASSINFO(T38_Type_of_msg, PASN_Choice); 00029 #endif 00030 public: 00031 T38_Type_of_msg(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 00032 00033 enum Choices { 00034 e_t30_indicator, 00035 e_data 00036 }; 00037 00038 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 00039 operator T38_Type_of_msg_t30_indicator &() const; 00040 #else 00041 operator T38_Type_of_msg_t30_indicator &(); 00042 operator const T38_Type_of_msg_t30_indicator &() const; 00043 #endif 00044 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 00045 operator T38_Type_of_msg_data &() const; 00046 #else 00047 operator T38_Type_of_msg_data &(); 00048 operator const T38_Type_of_msg_data &() const; 00049 #endif 00050 00051 BOOL CreateObject(); 00052 PObject * Clone() const; 00053 }; 00054 00055 00056 // 00057 // Data-Field 00058 // 00059 00060 class T38_Data_Field_subtype; 00061 00062 class T38_Data_Field : public PASN_Array 00063 { 00064 #ifndef PASN_LEANANDMEAN 00065 PCLASSINFO(T38_Data_Field, PASN_Array); 00066 #endif 00067 public: 00068 T38_Data_Field(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00069 00070 PASN_Object * CreateObject() const; 00071 T38_Data_Field_subtype & operator[](PINDEX i) const; 00072 PObject * Clone() const; 00073 }; 00074 00075 00076 // 00077 // PreCorrigendum-Data-Field 00078 // 00079 00080 class T38_PreCorrigendum_Data_Field_subtype; 00081 00082 class T38_PreCorrigendum_Data_Field : public PASN_Array 00083 { 00084 #ifndef PASN_LEANANDMEAN 00085 PCLASSINFO(T38_PreCorrigendum_Data_Field, PASN_Array); 00086 #endif 00087 public: 00088 T38_PreCorrigendum_Data_Field(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00089 00090 PASN_Object * CreateObject() const; 00091 T38_PreCorrigendum_Data_Field_subtype & operator[](PINDEX i) const; 00092 PObject * Clone() const; 00093 }; 00094 00095 00096 // 00097 // Type-of-msg_t30-indicator 00098 // 00099 00100 class T38_Type_of_msg_t30_indicator : public PASN_Enumeration 00101 { 00102 #ifndef PASN_LEANANDMEAN 00103 PCLASSINFO(T38_Type_of_msg_t30_indicator, PASN_Enumeration); 00104 #endif 00105 public: 00106 T38_Type_of_msg_t30_indicator(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 00107 00108 enum Enumerations { 00109 e_no_signal, 00110 e_cng, 00111 e_ced, 00112 e_v21_preamble, 00113 e_v27_2400_training, 00114 e_v27_4800_training, 00115 e_v29_7200_training, 00116 e_v29_9600_training, 00117 e_v17_7200_short_training, 00118 e_v17_7200_long_training, 00119 e_v17_9600_short_training, 00120 e_v17_9600_long_training, 00121 e_v17_12000_short_training, 00122 e_v17_12000_long_training, 00123 e_v17_14400_short_training, 00124 e_v17_14400_long_training 00125 }; 00126 00127 T38_Type_of_msg_t30_indicator & operator=(unsigned v); 00128 PObject * Clone() const; 00129 }; 00130 00131 00132 // 00133 // Type-of-msg_data 00134 // 00135 00136 class T38_Type_of_msg_data : public PASN_Enumeration 00137 { 00138 #ifndef PASN_LEANANDMEAN 00139 PCLASSINFO(T38_Type_of_msg_data, PASN_Enumeration); 00140 #endif 00141 public: 00142 T38_Type_of_msg_data(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 00143 00144 enum Enumerations { 00145 e_v21, 00146 e_v27_2400, 00147 e_v27_4800, 00148 e_v29_7200, 00149 e_v29_9600, 00150 e_v17_7200, 00151 e_v17_9600, 00152 e_v17_12000, 00153 e_v17_14400 00154 }; 00155 00156 T38_Type_of_msg_data & operator=(unsigned v); 00157 PObject * Clone() const; 00158 }; 00159 00160 00161 // 00162 // UDPTLPacket_error-recovery 00163 // 00164 00165 class T38_UDPTLPacket_error_recovery_secondary_ifp_packets; 00166 class T38_UDPTLPacket_error_recovery_fec_info; 00167 00168 class T38_UDPTLPacket_error_recovery : public PASN_Choice 00169 { 00170 #ifndef PASN_LEANANDMEAN 00171 PCLASSINFO(T38_UDPTLPacket_error_recovery, PASN_Choice); 00172 #endif 00173 public: 00174 T38_UDPTLPacket_error_recovery(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 00175 00176 enum Choices { 00177 e_secondary_ifp_packets, 00178 e_fec_info 00179 }; 00180 00181 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 00182 operator T38_UDPTLPacket_error_recovery_secondary_ifp_packets &() const; 00183 #else 00184 operator T38_UDPTLPacket_error_recovery_secondary_ifp_packets &(); 00185 operator const T38_UDPTLPacket_error_recovery_secondary_ifp_packets &() const; 00186 #endif 00187 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 00188 operator T38_UDPTLPacket_error_recovery_fec_info &() const; 00189 #else 00190 operator T38_UDPTLPacket_error_recovery_fec_info &(); 00191 operator const T38_UDPTLPacket_error_recovery_fec_info &() const; 00192 #endif 00193 00194 BOOL CreateObject(); 00195 PObject * Clone() const; 00196 }; 00197 00198 00199 // 00200 // Data-Field_subtype_field-type 00201 // 00202 00203 class T38_Data_Field_subtype_field_type : public PASN_Enumeration 00204 { 00205 #ifndef PASN_LEANANDMEAN 00206 PCLASSINFO(T38_Data_Field_subtype_field_type, PASN_Enumeration); 00207 #endif 00208 public: 00209 T38_Data_Field_subtype_field_type(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 00210 00211 enum Enumerations { 00212 e_hdlc_data, 00213 e_hdlc_sig_end, 00214 e_hdlc_fcs_OK, 00215 e_hdlc_fcs_BAD, 00216 e_hdlc_fcs_OK_sig_end, 00217 e_hdlc_fcs_BAD_sig_end, 00218 e_t4_non_ecm_data, 00219 e_t4_non_ecm_sig_end 00220 }; 00221 00222 T38_Data_Field_subtype_field_type & operator=(unsigned v); 00223 PObject * Clone() const; 00224 }; 00225 00226 00227 // 00228 // PreCorrigendum-Data-Field_subtype_field-type 00229 // 00230 00231 class T38_PreCorrigendum_Data_Field_subtype_field_type : public PASN_Enumeration 00232 { 00233 #ifndef PASN_LEANANDMEAN 00234 PCLASSINFO(T38_PreCorrigendum_Data_Field_subtype_field_type, PASN_Enumeration); 00235 #endif 00236 public: 00237 T38_PreCorrigendum_Data_Field_subtype_field_type(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 00238 00239 enum Enumerations { 00240 e_hdlc_data, 00241 e_hdlc_sig_end, 00242 e_hdlc_fcs_OK, 00243 e_hdlc_fcs_BAD, 00244 e_hdlc_fcs_OK_sig_end, 00245 e_hdlc_fcs_BAD_sig_end, 00246 e_t4_non_ecm_data, 00247 e_t4_non_ecm_sig_end 00248 }; 00249 00250 T38_PreCorrigendum_Data_Field_subtype_field_type & operator=(unsigned v); 00251 PObject * Clone() const; 00252 }; 00253 00254 00255 // 00256 // UDPTLPacket_error-recovery_secondary-ifp-packets 00257 // 00258 00259 class T38_UDPTLPacket_error_recovery_secondary_ifp_packets_subtype; 00260 00261 class T38_UDPTLPacket_error_recovery_secondary_ifp_packets : public PASN_Array 00262 { 00263 #ifndef PASN_LEANANDMEAN 00264 PCLASSINFO(T38_UDPTLPacket_error_recovery_secondary_ifp_packets, PASN_Array); 00265 #endif 00266 public: 00267 T38_UDPTLPacket_error_recovery_secondary_ifp_packets(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00268 00269 PASN_Object * CreateObject() const; 00270 T38_UDPTLPacket_error_recovery_secondary_ifp_packets_subtype & operator[](PINDEX i) const; 00271 PObject * Clone() const; 00272 }; 00273 00274 00275 // 00276 // ArrayOf_PASN_OctetString 00277 // 00278 00279 class T38_ArrayOf_PASN_OctetString : public PASN_Array 00280 { 00281 #ifndef PASN_LEANANDMEAN 00282 PCLASSINFO(T38_ArrayOf_PASN_OctetString, PASN_Array); 00283 #endif 00284 public: 00285 T38_ArrayOf_PASN_OctetString(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00286 00287 PASN_Object * CreateObject() const; 00288 PASN_OctetString & operator[](PINDEX i) const; 00289 PObject * Clone() const; 00290 }; 00291 00292 00293 // 00294 // IFPPacket 00295 // 00296 00297 class T38_IFPPacket : public PASN_Sequence 00298 { 00299 #ifndef PASN_LEANANDMEAN 00300 PCLASSINFO(T38_IFPPacket, PASN_Sequence); 00301 #endif 00302 public: 00303 T38_IFPPacket(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00304 00305 enum OptionalFields { 00306 e_data_field 00307 }; 00308 00309 T38_Type_of_msg m_type_of_msg; 00310 T38_Data_Field m_data_field; 00311 00312 PINDEX GetDataLength() const; 00313 BOOL Decode(PASN_Stream & strm); 00314 void Encode(PASN_Stream & strm) const; 00315 #ifndef PASN_NOPRINTON 00316 void PrintOn(ostream & strm) const; 00317 #endif 00318 Comparison Compare(const PObject & obj) const; 00319 PObject * Clone() const; 00320 }; 00321 00322 00323 // 00324 // PreCorrigendum-IFPPacket 00325 // 00326 00327 class T38_PreCorrigendum_IFPPacket : public PASN_Sequence 00328 { 00329 #ifndef PASN_LEANANDMEAN 00330 PCLASSINFO(T38_PreCorrigendum_IFPPacket, PASN_Sequence); 00331 #endif 00332 public: 00333 T38_PreCorrigendum_IFPPacket(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00334 00335 enum OptionalFields { 00336 e_data_field 00337 }; 00338 00339 T38_Type_of_msg m_type_of_msg; 00340 T38_PreCorrigendum_Data_Field m_data_field; 00341 00342 PINDEX GetDataLength() const; 00343 BOOL Decode(PASN_Stream & strm); 00344 void Encode(PASN_Stream & strm) const; 00345 #ifndef PASN_NOPRINTON 00346 void PrintOn(ostream & strm) const; 00347 #endif 00348 Comparison Compare(const PObject & obj) const; 00349 PObject * Clone() const; 00350 }; 00351 00352 00353 // 00354 // Data-Field_subtype 00355 // 00356 00357 class T38_Data_Field_subtype : public PASN_Sequence 00358 { 00359 #ifndef PASN_LEANANDMEAN 00360 PCLASSINFO(T38_Data_Field_subtype, PASN_Sequence); 00361 #endif 00362 public: 00363 T38_Data_Field_subtype(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00364 00365 enum OptionalFields { 00366 e_field_data 00367 }; 00368 00369 T38_Data_Field_subtype_field_type m_field_type; 00370 PASN_OctetString m_field_data; 00371 00372 PINDEX GetDataLength() const; 00373 BOOL Decode(PASN_Stream & strm); 00374 void Encode(PASN_Stream & strm) const; 00375 #ifndef PASN_NOPRINTON 00376 void PrintOn(ostream & strm) const; 00377 #endif 00378 Comparison Compare(const PObject & obj) const; 00379 PObject * Clone() const; 00380 }; 00381 00382 00383 // 00384 // PreCorrigendum-Data-Field_subtype 00385 // 00386 00387 class T38_PreCorrigendum_Data_Field_subtype : public PASN_Sequence 00388 { 00389 #ifndef PASN_LEANANDMEAN 00390 PCLASSINFO(T38_PreCorrigendum_Data_Field_subtype, PASN_Sequence); 00391 #endif 00392 public: 00393 T38_PreCorrigendum_Data_Field_subtype(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00394 00395 enum OptionalFields { 00396 e_field_data 00397 }; 00398 00399 T38_PreCorrigendum_Data_Field_subtype_field_type m_field_type; 00400 PASN_OctetString m_field_data; 00401 00402 PINDEX GetDataLength() const; 00403 BOOL Decode(PASN_Stream & strm); 00404 void Encode(PASN_Stream & strm) const; 00405 #ifndef PASN_NOPRINTON 00406 void PrintOn(ostream & strm) const; 00407 #endif 00408 Comparison Compare(const PObject & obj) const; 00409 PObject * Clone() const; 00410 }; 00411 00412 00413 // 00414 // UDPTLPacket_primary-ifp-packet 00415 // 00416 00417 class T38_UDPTLPacket_primary_ifp_packet : public PASN_OctetString 00418 { 00419 #ifndef PASN_LEANANDMEAN 00420 PCLASSINFO(T38_UDPTLPacket_primary_ifp_packet, PASN_OctetString); 00421 #endif 00422 public: 00423 T38_UDPTLPacket_primary_ifp_packet(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 00424 00425 BOOL DecodeSubType(T38_IFPPacket & obj) { return PASN_OctetString::DecodeSubType(obj); } 00426 void EncodeSubType(const T38_IFPPacket & obj) { PASN_OctetString::EncodeSubType(obj); } 00427 00428 PObject * Clone() const; 00429 }; 00430 00431 00432 // 00433 // UDPTLPacket_error-recovery_fec-info 00434 // 00435 00436 class T38_UDPTLPacket_error_recovery_fec_info : public PASN_Sequence 00437 { 00438 #ifndef PASN_LEANANDMEAN 00439 PCLASSINFO(T38_UDPTLPacket_error_recovery_fec_info, PASN_Sequence); 00440 #endif 00441 public: 00442 T38_UDPTLPacket_error_recovery_fec_info(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00443 00444 PASN_Integer m_fec_npackets; 00445 T38_ArrayOf_PASN_OctetString m_fec_data; 00446 00447 PINDEX GetDataLength() const; 00448 BOOL Decode(PASN_Stream & strm); 00449 void Encode(PASN_Stream & strm) const; 00450 #ifndef PASN_NOPRINTON 00451 void PrintOn(ostream & strm) const; 00452 #endif 00453 Comparison Compare(const PObject & obj) const; 00454 PObject * Clone() const; 00455 }; 00456 00457 00458 // 00459 // UDPTLPacket_error-recovery_secondary-ifp-packets_subtype 00460 // 00461 00462 class T38_UDPTLPacket_error_recovery_secondary_ifp_packets_subtype : public PASN_OctetString 00463 { 00464 #ifndef PASN_LEANANDMEAN 00465 PCLASSINFO(T38_UDPTLPacket_error_recovery_secondary_ifp_packets_subtype, PASN_OctetString); 00466 #endif 00467 public: 00468 T38_UDPTLPacket_error_recovery_secondary_ifp_packets_subtype(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 00469 00470 BOOL DecodeSubType(T38_IFPPacket & obj) { return PASN_OctetString::DecodeSubType(obj); } 00471 void EncodeSubType(const T38_IFPPacket & obj) { PASN_OctetString::EncodeSubType(obj); } 00472 00473 PObject * Clone() const; 00474 }; 00475 00476 00477 // 00478 // UDPTLPacket 00479 // 00480 00481 class T38_UDPTLPacket : public PASN_Sequence 00482 { 00483 #ifndef PASN_LEANANDMEAN 00484 PCLASSINFO(T38_UDPTLPacket, PASN_Sequence); 00485 #endif 00486 public: 00487 T38_UDPTLPacket(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 00488 00489 PASN_Integer m_seq_number; 00490 T38_UDPTLPacket_primary_ifp_packet m_primary_ifp_packet; 00491 T38_UDPTLPacket_error_recovery m_error_recovery; 00492 00493 PINDEX GetDataLength() const; 00494 BOOL Decode(PASN_Stream & strm); 00495 void Encode(PASN_Stream & strm) const; 00496 #ifndef PASN_NOPRINTON 00497 void PrintOn(ostream & strm) const; 00498 #endif 00499 Comparison Compare(const PObject & obj) const; 00500 PObject * Clone() const; 00501 }; 00502 00503 00504 #endif // __T38_H 00505 00506 #endif // if ! H323_DISABLE_T38 00507 00508 00509 // End of t38.h