libcsem  0.2
csem_tree.h
Go to the documentation of this file.
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 */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines