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 BOOL 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 BOOL
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 BOOL 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 BOOL 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 BOOL 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 BOOL 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 BOOL 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 BOOL 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
00403
00404 #endif
00405
00406
00407