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