00001
00002
00003
00004
00005
00006
00007 #if ! H323_DISABLE_X880
00008
00009 #ifndef __X880_H
00010 #define __X880_H
00011
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015
00016 #include <ptclib/asner.h>
00017
00018
00019
00020
00021
00022 class X880_Invoke;
00023 class X880_ReturnResult;
00024 class X880_ReturnError;
00025 class X880_Reject;
00026
00027 class X880_ROS : public PASN_Choice
00028 {
00029 #ifndef PASN_LEANANDMEAN
00030 PCLASSINFO(X880_ROS, PASN_Choice);
00031 #endif
00032 public:
00033 X880_ROS(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00034
00035 enum Choices {
00036 e_invoke,
00037 e_returnResult,
00038 e_returnError,
00039 e_reject
00040 };
00041
00042 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00043 operator X880_Invoke &() const;
00044 #else
00045 operator X880_Invoke &();
00046 operator const X880_Invoke &() const;
00047 #endif
00048 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00049 operator X880_ReturnResult &() const;
00050 #else
00051 operator X880_ReturnResult &();
00052 operator const X880_ReturnResult &() const;
00053 #endif
00054 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00055 operator X880_ReturnError &() const;
00056 #else
00057 operator X880_ReturnError &();
00058 operator const X880_ReturnError &() const;
00059 #endif
00060 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00061 operator X880_Reject &() const;
00062 #else
00063 operator X880_Reject &();
00064 operator const X880_Reject &() const;
00065 #endif
00066
00067 PBoolean CreateObject();
00068 PObject * Clone() const;
00069 };
00070
00071
00072
00073
00074
00075
00076 class X880_GeneralProblem : public PASN_Integer
00077 {
00078 #ifndef PASN_LEANANDMEAN
00079 PCLASSINFO(X880_GeneralProblem, PASN_Integer);
00080 #endif
00081 public:
00082 X880_GeneralProblem(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00083
00084 X880_GeneralProblem & operator=(int v);
00085 X880_GeneralProblem & operator=(unsigned v);
00086 PObject * Clone() const;
00087 };
00088
00089
00090
00091
00092
00093
00094 class X880_InvokeProblem : public PASN_Integer
00095 {
00096 #ifndef PASN_LEANANDMEAN
00097 PCLASSINFO(X880_InvokeProblem, PASN_Integer);
00098 #endif
00099 public:
00100 X880_InvokeProblem(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00101
00102 X880_InvokeProblem & operator=(int v);
00103 X880_InvokeProblem & operator=(unsigned v);
00104 PObject * Clone() const;
00105 };
00106
00107
00108
00109
00110
00111
00112 class X880_ReturnResultProblem : public PASN_Integer
00113 {
00114 #ifndef PASN_LEANANDMEAN
00115 PCLASSINFO(X880_ReturnResultProblem, PASN_Integer);
00116 #endif
00117 public:
00118 X880_ReturnResultProblem(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00119
00120 X880_ReturnResultProblem & operator=(int v);
00121 X880_ReturnResultProblem & operator=(unsigned v);
00122 PObject * Clone() const;
00123 };
00124
00125
00126
00127
00128
00129
00130 class X880_ReturnErrorProblem : public PASN_Integer
00131 {
00132 #ifndef PASN_LEANANDMEAN
00133 PCLASSINFO(X880_ReturnErrorProblem, PASN_Integer);
00134 #endif
00135 public:
00136 X880_ReturnErrorProblem(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00137
00138 X880_ReturnErrorProblem & operator=(int v);
00139 X880_ReturnErrorProblem & operator=(unsigned v);
00140 PObject * Clone() const;
00141 };
00142
00143
00144
00145
00146
00147
00148 class X880_RejectProblem : public PASN_Integer
00149 {
00150 #ifndef PASN_LEANANDMEAN
00151 PCLASSINFO(X880_RejectProblem, PASN_Integer);
00152 #endif
00153 public:
00154 X880_RejectProblem(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00155
00156 X880_RejectProblem & operator=(int v);
00157 X880_RejectProblem & operator=(unsigned v);
00158 PObject * Clone() const;
00159 };
00160
00161
00162
00163
00164
00165
00166 class X880_InvokeId : public PASN_Integer
00167 {
00168 #ifndef PASN_LEANANDMEAN
00169 PCLASSINFO(X880_InvokeId, PASN_Integer);
00170 #endif
00171 public:
00172 X880_InvokeId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00173
00174 X880_InvokeId & operator=(int v);
00175 X880_InvokeId & operator=(unsigned v);
00176 PObject * Clone() const;
00177 };
00178
00179
00180
00181
00182
00183
00184 class X880_Code : public PASN_Choice
00185 {
00186 #ifndef PASN_LEANANDMEAN
00187 PCLASSINFO(X880_Code, PASN_Choice);
00188 #endif
00189 public:
00190 X880_Code(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00191
00192 enum Choices {
00193 e_local,
00194 e_global
00195 };
00196
00197 PBoolean CreateObject();
00198 PObject * Clone() const;
00199 };
00200
00201
00202
00203
00204
00205
00206 class X880_ReturnResult_result : public PASN_Sequence
00207 {
00208 #ifndef PASN_LEANANDMEAN
00209 PCLASSINFO(X880_ReturnResult_result, PASN_Sequence);
00210 #endif
00211 public:
00212 X880_ReturnResult_result(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00213
00214 X880_Code m_opcode;
00215 PASN_OctetString m_result;
00216
00217 PINDEX GetDataLength() const;
00218 PBoolean Decode(PASN_Stream & strm);
00219 void Encode(PASN_Stream & strm) const;
00220 #ifndef PASN_NOPRINTON
00221 void PrintOn(ostream & strm) const;
00222 #endif
00223 Comparison Compare(const PObject & obj) const;
00224 PObject * Clone() const;
00225 };
00226
00227
00228
00229
00230
00231
00232 class X880_GeneralProblem;
00233 class X880_InvokeProblem;
00234 class X880_ReturnResultProblem;
00235 class X880_ReturnErrorProblem;
00236
00237 class X880_Reject_problem : public PASN_Choice
00238 {
00239 #ifndef PASN_LEANANDMEAN
00240 PCLASSINFO(X880_Reject_problem, PASN_Choice);
00241 #endif
00242 public:
00243 X880_Reject_problem(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00244
00245 enum Choices {
00246 e_general,
00247 e_invoke,
00248 e_returnResult,
00249 e_returnError
00250 };
00251
00252 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00253 operator X880_GeneralProblem &() const;
00254 #else
00255 operator X880_GeneralProblem &();
00256 operator const X880_GeneralProblem &() const;
00257 #endif
00258 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00259 operator X880_InvokeProblem &() const;
00260 #else
00261 operator X880_InvokeProblem &();
00262 operator const X880_InvokeProblem &() const;
00263 #endif
00264 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00265 operator X880_ReturnResultProblem &() const;
00266 #else
00267 operator X880_ReturnResultProblem &();
00268 operator const X880_ReturnResultProblem &() const;
00269 #endif
00270 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00271 operator X880_ReturnErrorProblem &() const;
00272 #else
00273 operator X880_ReturnErrorProblem &();
00274 operator const X880_ReturnErrorProblem &() const;
00275 #endif
00276
00277 PBoolean CreateObject();
00278 PObject * Clone() const;
00279 };
00280
00281
00282
00283
00284
00285
00286 class X880_Invoke : public PASN_Sequence
00287 {
00288 #ifndef PASN_LEANANDMEAN
00289 PCLASSINFO(X880_Invoke, PASN_Sequence);
00290 #endif
00291 public:
00292 X880_Invoke(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00293
00294 enum OptionalFields {
00295 e_linkedId,
00296 e_argument
00297 };
00298
00299 PASN_Integer m_invokeId;
00300 X880_InvokeId m_linkedId;
00301 X880_Code m_opcode;
00302 PASN_OctetString m_argument;
00303
00304 PINDEX GetDataLength() const;
00305 PBoolean Decode(PASN_Stream & strm);
00306 void Encode(PASN_Stream & strm) const;
00307 #ifndef PASN_NOPRINTON
00308 void PrintOn(ostream & strm) const;
00309 #endif
00310 Comparison Compare(const PObject & obj) const;
00311 PObject * Clone() const;
00312 };
00313
00314
00315
00316
00317
00318
00319 class X880_ReturnResult : public PASN_Sequence
00320 {
00321 #ifndef PASN_LEANANDMEAN
00322 PCLASSINFO(X880_ReturnResult, PASN_Sequence);
00323 #endif
00324 public:
00325 X880_ReturnResult(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00326
00327 enum OptionalFields {
00328 e_result
00329 };
00330
00331 X880_InvokeId m_invokeId;
00332 X880_ReturnResult_result m_result;
00333
00334 PINDEX GetDataLength() const;
00335 PBoolean Decode(PASN_Stream & strm);
00336 void Encode(PASN_Stream & strm) const;
00337 #ifndef PASN_NOPRINTON
00338 void PrintOn(ostream & strm) const;
00339 #endif
00340 Comparison Compare(const PObject & obj) const;
00341 PObject * Clone() const;
00342 };
00343
00344
00345
00346
00347
00348
00349 class X880_ReturnError : public PASN_Sequence
00350 {
00351 #ifndef PASN_LEANANDMEAN
00352 PCLASSINFO(X880_ReturnError, PASN_Sequence);
00353 #endif
00354 public:
00355 X880_ReturnError(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00356
00357 enum OptionalFields {
00358 e_parameter
00359 };
00360
00361 X880_InvokeId m_invokeId;
00362 X880_Code m_errorCode;
00363 PASN_OctetString m_parameter;
00364
00365 PINDEX GetDataLength() const;
00366 PBoolean Decode(PASN_Stream & strm);
00367 void Encode(PASN_Stream & strm) const;
00368 #ifndef PASN_NOPRINTON
00369 void PrintOn(ostream & strm) const;
00370 #endif
00371 Comparison Compare(const PObject & obj) const;
00372 PObject * Clone() const;
00373 };
00374
00375
00376
00377
00378
00379
00380 class X880_Reject : public PASN_Sequence
00381 {
00382 #ifndef PASN_LEANANDMEAN
00383 PCLASSINFO(X880_Reject, PASN_Sequence);
00384 #endif
00385 public:
00386 X880_Reject(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00387
00388 X880_InvokeId m_invokeId;
00389 X880_Reject_problem m_problem;
00390
00391 PINDEX GetDataLength() const;
00392 PBoolean Decode(PASN_Stream & strm);
00393 void Encode(PASN_Stream & strm) const;
00394 #ifndef PASN_NOPRINTON
00395 void PrintOn(ostream & strm) const;
00396 #endif
00397 Comparison Compare(const PObject & obj) const;
00398 PObject * Clone() const;
00399 };
00400
00401
00402 #endif // __X880_H
00403
00404 #endif // if ! H323_DISABLE_X880
00405
00406
00407