Go 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
00025
00026
00027
00028 #ifndef GWENHYWFAR_XMLCTX_H
00029 #define GWENHYWFAR_XMLCTX_H
00030
00031 #include <gwenhywfar/gwenhywfarapi.h>
00032 #include <gwenhywfar/inherit.h>
00033 #include <stdio.h>
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00039 typedef struct GWEN_XML_CONTEXT GWEN_XML_CONTEXT;
00040 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_XML_CONTEXT, GWENHYWFAR_API)
00041
00042
00043 #include <gwenhywfar/xml.h>
00044
00045
00046
00047 typedef int (*GWEN_XMLCTX_STARTTAG_FN)(GWEN_XML_CONTEXT *ctx,
00048 const char *tagName);
00049 typedef int (*GWEN_XMLCTX_ENDTAG_FN)(GWEN_XML_CONTEXT *ctx, int closing);
00050 typedef int (*GWEN_XMLCTX_ADDDATA_FN)(GWEN_XML_CONTEXT *ctx,
00051 const char *data);
00052 typedef int (*GWEN_XMLCTX_ADDCOMMENT_FN)(GWEN_XML_CONTEXT *ctx,
00053 const char *data);
00054 typedef int (*GWEN_XMLCTX_ADDATTR_FN)(GWEN_XML_CONTEXT *ctx,
00055 const char *attrName,
00056 const char *attrData);
00057
00058
00059
00060 GWENHYWFAR_API GWEN_XML_CONTEXT *GWEN_XmlCtx_new(uint32_t flags);
00061 GWENHYWFAR_API void GWEN_XmlCtx_free(GWEN_XML_CONTEXT *ctx);
00062 GWENHYWFAR_API void GWEN_XmlCtx_Attach(GWEN_XML_CONTEXT *ctx);
00063
00064 GWENHYWFAR_API
00065 uint32_t GWEN_XmlCtx_GetFlags(const GWEN_XML_CONTEXT *ctx);
00066
00067 GWENHYWFAR_API
00068 void GWEN_XmlCtx_SetFlags(GWEN_XML_CONTEXT *ctx, uint32_t f);
00069
00070
00071 GWENHYWFAR_API
00072 uint32_t GWEN_XmlCtx_GetFinishedElement(const GWEN_XML_CONTEXT *ctx);
00073
00074 GWENHYWFAR_API
00075 void GWEN_XmlCtx_IncFinishedElement(GWEN_XML_CONTEXT *ctx);
00076
00077 GWENHYWFAR_API
00078 void GWEN_XmlCtx_ResetFinishedElement(GWEN_XML_CONTEXT *ctx);
00079
00080
00081 GWENHYWFAR_API
00082 int GWEN_XmlCtx_GetDepth(const GWEN_XML_CONTEXT *ctx);
00083
00084 GWENHYWFAR_API
00085 void GWEN_XmlCtx_SetDepth(GWEN_XML_CONTEXT *ctx, int i);
00086
00087 GWENHYWFAR_API
00088 void GWEN_XmlCtx_IncDepth(GWEN_XML_CONTEXT *ctx);
00089
00090 GWENHYWFAR_API
00091 int GWEN_XmlCtx_DecDepth(GWEN_XML_CONTEXT *ctx);
00092
00093
00094 GWENHYWFAR_API
00095 void GWEN_XmlCtx_SetCurrentNode(GWEN_XML_CONTEXT *ctx, GWEN_XMLNODE *n);
00096
00097 GWENHYWFAR_API
00098 GWEN_XMLNODE *GWEN_XmlCtx_GetCurrentNode(const GWEN_XML_CONTEXT *ctx);
00099
00100 GWENHYWFAR_API
00101 void GWEN_XmlCtx_SetCurrentHeader(GWEN_XML_CONTEXT *ctx, GWEN_XMLNODE *n);
00102
00103 GWENHYWFAR_API
00104 GWEN_XMLNODE *GWEN_XmlCtx_GetCurrentHeader(const GWEN_XML_CONTEXT *ctx);
00105
00106 GWENHYWFAR_API
00107 GWEN_XMLCTX_STARTTAG_FN GWEN_XmlCtx_SetStartTagFn(GWEN_XML_CONTEXT *ctx,
00108 GWEN_XMLCTX_STARTTAG_FN f);
00109
00110 GWENHYWFAR_API
00111 GWEN_XMLCTX_ENDTAG_FN GWEN_XmlCtx_SetEndTagFn(GWEN_XML_CONTEXT *ctx,
00112 GWEN_XMLCTX_ENDTAG_FN f);
00113
00114 GWENHYWFAR_API
00115 GWEN_XMLCTX_ADDDATA_FN GWEN_XmlCtx_SetAddDataFn(GWEN_XML_CONTEXT *ctx,
00116 GWEN_XMLCTX_ADDDATA_FN f);
00117
00118 GWENHYWFAR_API
00119 GWEN_XMLCTX_ADDCOMMENT_FN
00120 GWEN_XmlCtx_SetAddCommentFn(GWEN_XML_CONTEXT *ctx,
00121 GWEN_XMLCTX_ADDCOMMENT_FN f);
00122
00123 GWENHYWFAR_API
00124 GWEN_XMLCTX_ADDATTR_FN GWEN_XmlCtx_SetAddAttrFn(GWEN_XML_CONTEXT *ctx,
00125 GWEN_XMLCTX_ADDATTR_FN f);
00126
00127
00128
00129
00130
00131 GWENHYWFAR_API
00132 GWEN_XML_CONTEXT *GWEN_XmlCtxStore_new(GWEN_XMLNODE *n, uint32_t flags);
00133
00134
00135 #ifdef __cplusplus
00136 }
00137 #endif
00138
00139
00140 #endif
00141