00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00029
00030 #ifndef _SML_XML_ASSM_INTERNALS_H_
00031 #define _SML_XML_ASSM_INTERNALS_H_
00032
00033 #include <libxml/xmlwriter.h>
00034
00035 #define XML_NODE_START 1
00036 #define XML_NODE_TEXT 3
00037 #define XML_NODE_CLOSE 15
00038 #define XML_NODE_CDATA 4
00039
00040 typedef enum {
00041 SML_ASSEMBLER_NODE_OPEN,
00042 SML_ASSEMBLER_NODE_CLOSE
00043 } SmlXmlAssemblerNodeType;
00044
00045 typedef struct SmlXmlAssemblerCommand {
00047 SmlCommandType cmdType;
00049 xmlBuffer *buffer;
00051 SmlXmlAssemblerNodeType nodeType;
00053 unsigned int cmdID;
00054 GList *children;
00055 } SmlXmlAssemblerCommand;
00056
00057 typedef struct SmlXmlAssemblerStatus {
00059 unsigned int cmdRef;
00060
00061 unsigned int msgRef;
00063 xmlBuffer *buffer;
00065 unsigned int cmdID;
00066 } SmlXmlAssemblerStatus;
00067
00068 struct SmlXmlAssembler {
00069 xmlTextWriter *writer;
00070 xmlBuffer *header_buffer;
00071 GList *statuses;
00072 GList *commands;
00073 GList *last_commands;
00074 GList *parent_commands;
00075 GList *parent_buffers;
00076 SmlSession *session;
00077 SmlAssembler *assembler;
00078 GMutex *mutex;
00079
00080 unsigned int reserved_statuses;
00081 unsigned int added_statuses;
00082
00083 SmlBool moreDataSet;
00084 };
00085
00086 SmlBool smlAssemblerStartNode(SmlAssembler *assm, const char *name, SmlError **error);
00087 SmlBool smlAssemblerStartNodeNS(SmlAssembler *assm, const char *prefix, const char *name, const char *uri, SmlError **error);
00088 SmlBool smlAssemblerEndNode(SmlAssembler *assm, SmlError **error);
00089 SmlBool smlAssemblerAddString(SmlAssembler *assm, const char *name, const char *value, SmlError **error);
00090 SmlBool smlAssemblerAddStringNS(SmlAssembler *assm, const char *prefix, const char *name, const char *uri, const char *value, SmlError **error);
00091 SmlBool smlAssemblerAddID(SmlAssembler *assm, const char *name, unsigned int id, SmlError **error);
00092 SmlBool smlAssemblerAddData(SmlAssembler *assm, const char *name, const char *value, SmlError **error);
00093
00094 #endif //_SML_XML_ASSM_INTERNALS_H_
00095