# t38.h

Go to the documentation of this file.

    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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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     PBoolean 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