Main Page | Modules | File List | Globals

_gdsl_node.h

Go to the documentation of this file.
00001 /*
00002  * This file is part of the Generic Data Structures Library (GDSL).
00003  * Copyright (C) 1998-2004 Nicolas Darnis <ndarnis@free.fr>.
00004  *
00005  * The GDSL library is free software; you can redistribute it and/or 
00006  * modify it under the terms of the GNU General Public License as 
00007  * published by the Free Software Foundation; either version 2 of
00008  * the License, or (at your option) any later version.
00009  *
00010  * The GDSL library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with the GDSL library; see the file COPYING.
00017  * If not, write to the Free Software Foundation, Inc., 
00018  * 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
00019  *
00020  * $RCSfile: __gdsl__node_8h-source.html,v $
00021  * $Revision: 1.4 $
00022  * $Date: 2004/10/03 14:35:37 $
00023  */
00024 
00025 #ifndef __GDSL_NODE_H_
00026 #define __GDSL_NODE_H_
00027 
00028 
00029 #include "gdsl_types.h"
00030 
00031 
00032 #ifdef __cplusplus
00033 extern "C" 
00034 {
00035 #endif /* __cplusplus */
00036 
00037 
00049 typedef struct _gdsl_node* _gdsl_node_t;
00050 
00051 /******************************************************************************/
00052 /* Management functions of low-level doubly linked nodes                      */
00053 /******************************************************************************/
00054 
00066 extern _gdsl_node_t
00067 _gdsl_node_alloc (void);
00068 
00079 extern gdsl_element_t
00080 _gdsl_node_free (_gdsl_node_t NODE
00081          );
00082 
00083 /******************************************************************************/
00084 /* Consultation functions of low-level doubly linked nodes                    */
00085 /******************************************************************************/
00086 
00098 extern _gdsl_node_t
00099 _gdsl_node_get_succ (const _gdsl_node_t NODE
00100              );
00101 
00113 extern _gdsl_node_t
00114 _gdsl_node_get_pred (const _gdsl_node_t NODE
00115              );
00116 
00126 extern gdsl_element_t
00127 _gdsl_node_get_content (const _gdsl_node_t NODE
00128             );
00129 
00130 /******************************************************************************/
00131 /* Modification functions of low-level doubly linked nodes                    */
00132 /******************************************************************************/
00133 
00145 extern void
00146 _gdsl_node_set_succ (_gdsl_node_t NODE,
00147              const _gdsl_node_t SUCC
00148              );
00149 
00161 extern void
00162 _gdsl_node_set_pred (_gdsl_node_t NODE,
00163              const _gdsl_node_t PRED
00164              );
00165 
00177 extern void
00178 _gdsl_node_set_content (_gdsl_node_t NODE,
00179             const gdsl_element_t CONTENT
00180             );
00181 
00194 extern void
00195 _gdsl_node_link (_gdsl_node_t NODE1,
00196          _gdsl_node_t NODE2
00197          );
00198 
00211 extern void
00212 _gdsl_node_unlink (_gdsl_node_t NODE1,
00213            _gdsl_node_t NODE2
00214            );
00215 
00216 /******************************************************************************/
00217 /* Input/output functions of low-level doubly linked nodes                    */
00218 /******************************************************************************/
00219 
00236 extern void
00237 _gdsl_node_write (const _gdsl_node_t NODE,
00238           const gdsl_write_func_t WRITE_F,
00239           FILE* OUTPUT_FILE,
00240           void* USER_DATA
00241           );
00242 
00261 extern void
00262 _gdsl_node_write_xml (const _gdsl_node_t NODE,
00263               const gdsl_write_func_t WRITE_F,
00264               FILE* OUTPUT_FILE,
00265               void* USER_DATA
00266               );
00267 
00285 extern void
00286 _gdsl_node_dump (const _gdsl_node_t NODE,
00287          const gdsl_write_func_t WRITE_F,
00288          FILE* OUTPUT_FILE,
00289          void* USER_DATA
00290          );
00291 
00292 /*
00293  * @}
00294  */
00295 
00296 
00297 #ifdef __cplusplus
00298 }
00299 #endif /* __cplusplus */
00300 
00301 
00302 #endif /* __GDSL_NODE_H_ */
00303 

Generated on Sun Oct 3 16:15:50 2004 for GDSL by doxygen 1.3.5