asn1XerCTypes.hGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00029 #ifndef _ASN1XERCTYPES_H_
00030 #define _ASN1XERCTYPES_H_
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036 #include <stdio.h>
00037 #include <stdlib.h>
00038 #include <setjmp.h>
00039
00040 #include "asn1xer.h"
00041 #include "csaxParser.h"
00042
00043 typedef void (*ASN1XERStartElementHandler)( void *userData,
00044 ASN1Const XMLCHAR *name,
00045 ASN1Const XMLCHAR **atts);
00046
00047 typedef void (*ASN1XEREndElementHandler)( void *userData,
00048 ASN1Const XMLCHAR *name);
00049
00050
00051 typedef void (*ASN1XERCharacterHandler)( void *userData,
00052 ASN1Const XMLCHAR *s,
00053 int len);
00054
00055 typedef struct ASN1SAXCDecodeHandlerBase {
00056 ASN1XERStartElementHandler mpStartElement;
00057 ASN1XEREndElementHandler mpEndElement;
00058 ASN1XERCharacterHandler mpCharacters;
00059
00060 ASN1CTXT* mpCtxt;
00061 ASN1ConstCharPtr mpTypeName;
00062 ASN1XERState mCurrState;
00063 int mLevel, mStartLevel;
00064 } ASN1SAXCDecodeHandlerBase;
00065
00066 #define ISCOMPLETE(e) (e->mSaxBase.mLevel == e->mSaxBase.mStartLevel)
00067
00068 #define ASN1SAXCTRY(pctxt,stat) \
00069 if ((stat = setjmp((pctxt)->jmpMark)) == 0)
00070
00071 #define ASN1SAXCTHROW(pctxt,stat) do { LOG_ASN1ERR ((pctxt), stat); \
00072 longjmp((pctxt)->jmpMark, stat); } while (0)
00073
00074 #define ASN1SAXCCATCH else
00075
00076 #define STRX(pctxt,pWideStr) xerTextToCStr ((pctxt), (pWideStr))
00077
00078 #if defined (XML_UNICODE) && defined(XML_UNICODE_WCHAR_T)
00079 #define LSTRX(pctxt,pLStr) xerTextToCStr ((pctxt), (pLStr))
00080 #else
00081 #define LSTRX(pctxt,pLStr) \
00082 strcpy ((char*)ASN1MALLOC (pctxt, strlen (pLStr) + 1), (pLStr))
00083 #endif
00084
00086 #define XERCDIAGSTRM2(pctxt,a) RTDIAGSTRM2(pctxt,a)
00087 #define XERCDIAGSTRM3(pctxt,a,b) RTDIAGSTRM3(pctxt,a,b)
00088 #define XERCDIAGSTRM4(pctxt,a,b,c) do { \
00089 void* p = (void*)b; \
00090 RTDIAGSTRM4(pctxt,a,p,c ); \
00091 ASN1MEMFREEPTR(pctxt,p); \
00092 } while (0)
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104 #ifndef _COMPACT
00105 #define DECLARE_NON_COMPACT_VAR(type,var) type var
00106 #else
00107 #define DECLARE_NON_COMPACT_VAR(type,var)
00108 #endif
00109
00110
00111
00112 #ifdef __cplusplus
00113 }
00114 #endif
00115 #endif
|