libcsem
0.2
|
00001 /* 00002 * $Id: csem__tree_8h_source.html,v 1.1 2013-04-22 20:16:24 hitoshi Exp $ 00003 * See Copyright for the status of this software. 00004 * uchida@w3.org 00005 */ 00006 #ifndef CSEM_TREE_H 00007 #define CSEM_TREE_H 00008 00009 #ifdef __cplusplus 00010 #define CSEM_NS_C_BEGIN extern "C" { 00011 #define CSEM_NS_C_END } 00012 #else 00013 #define CSEM_NS_C_BEGIN 00014 #define CSEM_NS_C_END 00015 #endif 00016 00017 CSEM_NS_C_BEGIN 00018 00019 #include "csem_list.h" 00020 00024 typedef enum CSEM_NODE_TYPE { 00025 CSEM_NODE_TYPE_NONE = 0, 00027 CSEM_NODE_TYPE_DOCUMENT, 00029 CSEM_NODE_TYPE_ITEM, 00031 CSEM_NODE_TYPE_PROPERTY, 00033 CSEM_NODE_TYPE_ID 00034 } CSEM_NODE_TYPE; 00038 typedef struct CSEM_Document CSEM_Document; 00042 typedef struct CSEM_Node CSEM_Node; 00051 CSEM_Error CSEM_Node_Create(CSEM_Node **node, 00052 CSEM_NODE_TYPE type, void *obj, CSEM_Node *parent); 00058 CSEM_NODE_TYPE CSEM_Node_GetType(CSEM_Node *node); 00064 CSEM_Node *CSEM_Node_GetParent(CSEM_Node *node); 00069 void *CSEM_Node_GetObject(CSEM_Node *node); 00074 void CSEM_Node_Dispose(CSEM_Node *node); 00080 CSEM_Error CSEM_Document_Create(CSEM_Document **document); 00085 void CSEM_Document_Dispose(CSEM_Document *document); 00091 CSEM_List *CSEM_Document_GetChildren(CSEM_Document *doc); 00098 CSEM_Error CSEM_Document_AppendChild(CSEM_Document *doc, CSEM_Node *child); 00099 00100 CSEM_NS_C_END 00101 00102 #endif /* CSEM_TREE_H */