00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00043 #ifndef _ASN1CPPEVTHNDLR_H_
00044 #define _ASN1CPPEVTHNDLR_H_
00045
00046 #include "rtsrc/asn1type.h"
00047
00048
00049
00057 class EXTRTCLASS Asn1NamedEventHandler {
00058 public:
00059 Asn1NamedEventHandler() {}
00060 virtual ~Asn1NamedEventHandler() {}
00061
00062
00063
00064
00080 virtual void startElement (const char* name, int index) = 0;
00081
00082
00083
00100 virtual void endElement (const char* name, int index) = 0;
00101
00102
00103
00104
00105
00113 virtual void boolValue (OSBOOL value) {}
00114
00122 virtual void intValue (OSINT32 value) {}
00123
00134 virtual void uIntValue (OSUINT32 value) {}
00135
00143 virtual void int64Value (OSINT64 value) {
00144 intValue ((OSINT32)value);
00145 }
00146
00154 virtual void uInt64Value (OSUINT64 value) {
00155 uIntValue ((OSUINT32)value);
00156 }
00157
00167 virtual void bitStrValue (OSUINT32 numbits, const OSOCTET* data) {}
00168
00178 virtual void octStrValue (OSUINT32 numocts, const OSOCTET* data) {}
00179
00187 virtual void charStrValue (const char* value) {}
00188
00197 virtual void charStrValue (OSUINT32 nchars, const OSUTF8CHAR *value) {}
00198
00211 virtual void charStrValue (OSUINT32 nchars, OSUNICHAR* data) {}
00212
00224 virtual void charStrValue (OSUINT32 nchars, OS32BITCHAR* data) {}
00225
00233 virtual void nullValue () {}
00234
00243 virtual void oidValue (OSUINT32 numSubIds, OSUINT32* pSubIds) {}
00244
00252 virtual void realValue (double value) {}
00253
00262 virtual void enumValue (OSUINT32 value, const OSUTF8CHAR* text) {}
00263
00273 virtual void openTypeValue (OSUINT32 numocts, const OSOCTET* data) {}
00274
00275
00276
00277
00278 EXTRTMETHOD static void addEventHandler (OSCTXT* pCtxt,
00279 Asn1NamedEventHandler* pHandler);
00280
00281
00282
00283
00284
00285 EXTRTMETHOD static void
00286 removeEventHandler (OSCTXT* pCtxt, Asn1NamedEventHandler* pHandler);
00287
00288
00289
00290
00291 EXTRTMETHOD static void invokeStartElement
00292 (OSCTXT* pCtxt, const char* name, int index);
00293
00294 EXTRTMETHOD static void invokeEndElement
00295 (OSCTXT* pCtxt, const char* name, int index);
00296
00297 EXTRTMETHOD static void invokeBoolValue (OSCTXT* pCtxt, OSBOOL value);
00298 EXTRTMETHOD static void invokeIntValue (OSCTXT* pCtxt, OSINT32 value);
00299 EXTRTMETHOD static void invokeUIntValue (OSCTXT* pCtxt, OSUINT32 value);
00300 EXTRTMETHOD static void invokeInt64Value (OSCTXT* pCtxt, OSINT64 value);
00301 EXTRTMETHOD static void invokeUInt64Value (OSCTXT* pCtxt, OSUINT64 value);
00302 EXTRTMETHOD static void invokeBitStrValue
00303 (OSCTXT* pCtxt, OSUINT32 numbits, const OSOCTET* data);
00304 EXTRTMETHOD static void invokeOctStrValue
00305 (OSCTXT* pCtxt, OSUINT32 numocts, const OSOCTET* data);
00306 EXTRTMETHOD static void invokeCharStrValue
00307 (OSCTXT* pCtxt, const char* value);
00308 EXTRTMETHOD static void invokeCharStrValue
00309 (OSCTXT* pCtxt, OSUINT32 nchars, OSUNICHAR* data);
00310 EXTRTMETHOD static void invokeCharStrValue
00311 (OSCTXT* pCtxt, OSUINT32 nchars, OS32BITCHAR* data);
00312 EXTRTMETHOD static void invokeCharStrValue
00313 (OSCTXT* pCtxt, OSUINT32 nchars, const OSUTF8CHAR* data);
00314 EXTRTMETHOD static void invokeNullValue (OSCTXT* pCtxt);
00315 EXTRTMETHOD static void invokeOidValue
00316 (OSCTXT* pCtxt, OSUINT32 numSubIds, OSUINT32* pSubIds);
00317 EXTRTMETHOD static void invokeRealValue (OSCTXT* pCtxt, double value);
00318 EXTRTMETHOD static void invokeEnumValue
00319 (OSCTXT* pCtxt, OSUINT32 value, const OSUTF8CHAR* text);
00320 EXTRTMETHOD static void invokeOpenTypeValue
00321 (OSCTXT* pCtxt, OSUINT32 numocts, const OSOCTET* data);
00322
00323 } ;
00324
00325
00326
00327
00328 class EXTRTCLASS Asn1NullEventHandler : public Asn1NamedEventHandler {
00329 public:
00330 virtual void startElement (const char* , int ) {}
00331 virtual void endElement (const char* , int ) {}
00332 } ;
00333
00334
00335
00336
00337 class EXTRTCLASS ASN1MessageBuffer ;
00338
00347 class EXTRTCLASS Asn1ErrorHandler {
00348 public:
00349 Asn1ErrorHandler() {}
00350 virtual ~Asn1ErrorHandler() {}
00351
00363 virtual int error (OSCTXT* pCtxt, ASN1CCB* pCCB, int stat) = 0;
00364
00365
00366
00367
00368 EXTRTMETHOD static int invoke (OSCTXT* pCtxt, ASN1CCB* pCCB, int stat);
00369
00370
00371
00372
00373 EXTRTMETHOD static int invoke
00374 (OSCTXT* pCtxt, OSOCTET* ptr, int len, int stat);
00375
00386 EXTRTMETHOD static void setErrorHandler
00387 (OSCTXT* pCtxt, Asn1ErrorHandler* pHandler);
00388
00389 } ;
00393 #endif