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