xml_utils.h

Go to the documentation of this file.
00001 
00005 /* LICENSE BEGIN
00006 
00007 Copyright Cerfacs (Christian Page) (2015)
00008 
00009 christian.page@cerfacs.fr
00010 
00011 This software is a computer program whose purpose is to downscale climate
00012 scenarios using a statistical methodology based on weather regimes.
00013 
00014 This software is governed by the CeCILL license under French law and
00015 abiding by the rules of distribution of free software. You can use, 
00016 modify and/ or redistribute the software under the terms of the CeCILL
00017 license as circulated by CEA, CNRS and INRIA at the following URL
00018 "http://www.cecill.info". 
00019 
00020 As a counterpart to the access to the source code and rights to copy,
00021 modify and redistribute granted by the license, users are provided only
00022 with a limited warranty and the software's author, the holder of the
00023 economic rights, and the successive licensors have only limited
00024 liability. 
00025 
00026 In this respect, the user's attention is drawn to the risks associated
00027 with loading, using, modifying and/or developing or reproducing the
00028 software by the user in light of its specific status of free software,
00029 that may mean that it is complicated to manipulate, and that also
00030 therefore means that it is reserved for developers and experienced
00031 professionals having in-depth computer knowledge. Users are therefore
00032 encouraged to load and test the software's suitability as regards their
00033 requirements in conditions enabling the security of their systems and/or 
00034 data to be ensured and, more generally, to use and operate it in the 
00035 same conditions as regards security. 
00036 
00037 The fact that you are presently reading this means that you have had
00038 knowledge of the CeCILL license and that you accept its terms.
00039 
00040 LICENSE END */
00041 
00042 
00043 
00044 
00045 
00046 
00047 #ifndef XML_UTIL_H
00048 #define XML_UTIL_H
00049 
00050 #ifdef HAVE_CONFIG_H
00051 #include <config.h>
00052 #endif
00053 
00055 #define _GNU_SOURCE
00056 
00057 #ifdef HAVE_STDLIB_H
00058 #include <stdlib.h>
00059 #endif
00060 #ifdef HAVE_SYS_TYPES_H
00061 #include <sys/types.h>
00062 #endif
00063 #ifdef HAVE_SYS_STAT_H
00064 #include <sys/stat.h>
00065 #endif
00066 #ifdef HAVE_FCNTL_H
00067 #include <fcntl.h>
00068 #endif
00069 #ifdef HAVE_SIGNAL_H
00070 #include <signal.h>
00071 #endif
00072 #ifdef HAVE_TIME_H
00073 #include <time.h>
00074 #endif
00075 #ifdef HAVE_UNISTD_H
00076 #include <unistd.h>
00077 #endif
00078 #ifdef HAVE_STRING_H
00079 #include <string.h>
00080 #endif
00081 #ifdef HAVE_STDIO_H
00082 #include <stdio.h>
00083 #endif
00084 #ifdef HAVE_SYS_MMAN_H
00085 #include <sys/mman.h>
00086 #endif
00087 
00089 #define TRUE 1
00090 
00091 #define FALSE 0
00092 
00093 /* Local dependent includes */
00094 #include <misc.h>
00095 
00096 #include <libxml/parser.h>
00097 #include <libxml/xpath.h>
00098 
00100 typedef struct {
00101   char *file; 
00102   xmlDocPtr doc; 
00103   xmlNodePtr root; 
00104   xmlXPathContextPtr ctxt; 
00105 } xmlConfig_t;
00106 
00107 
00108 void xml_free_config(xmlConfig_t *conf);
00109 xmlConfig_t *xml_load_config(char *filename);
00110 xmlNodePtr xml_get_node_by_xpath(xmlConfig_t *conf, char *path);
00111 xmlChar *xml_get_setting(xmlConfig_t *conf, char *path);
00112 void xml_print_setting(xmlConfig_t *conf, char *path);
00113 
00114 #endif

Generated on 12 May 2016 for DSCLIM by  doxygen 1.6.1