imr/src/libmapping_mng/src/fmt_hdl_xml.h
2008-11-12 02:25:22 +00:00

136 lines
6.7 KiB
C

/*----------------------------------------------------------------------------*/
/* File: fmt_hdl_xml.h */
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* IMR - Interlinking Message Router */
/* Copyright (C) 2005 Arnaud G. Gibert & Others (See ReadMe.txt) */
/* mailto:arnaud@rx3.net */
/* http://www.rx3.org/dvp/?dvp=imr */
/*----------------------------------------------------------------------------*/
/* This file is part of IMR */
/* */
/* This program is free software; you can redistribute it and/or */
/* modify it under the terms of the GNU General Public License */
/* as published by the Free Software Foundation; either version 2 */
/* of the License, or (at your option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program; if not, write to the Free Software Foundation, */
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
/*----------------------------------------------------------------------------*/
#ifndef _XML_HANDLER_H_
#define _XML_HANDLER_H_
#include <libxml/tree.h>
#include <libxml/xpath.h>
/*----------------------------------------------------------------------------*/
/* Global Include */
/*----------------------------------------------------------------------------*/
#include "libmapping_mng.h"
/*----------------------------------------------------------------------------*/
/* Local definition */
/*----------------------------------------------------------------------------*/
#ifdef _XML_HANDLER_C_
# define IMRD_XML_VERSION "1.0"
# define IMRD_XML_BALISE "/"
# define IMRD_SOON_SIZE 100
# define IMRD_FIRST_NODE 0
# define IMRD_FATHER_SIZE 100
# define IMRD_ATTIBUTE_SIZE 100
typedef int IMRT_NB_FATHER ;
typedef char ** IMRT_FATHER_TABLE;
typedef struct IMRT_PARSE_PATH_XML
{
IMRT_NB_FATHER Nb_Father;
IMRT_Status Attribute_present;
IMRT_FATHER_TABLE Father_Table;
char Soon_Name[IMRD_SOON_SIZE];
char Attribute_Name[IMRD_ATTIBUTE_SIZE];
char Attribute_Value[IMRD_ATTIBUTE_SIZE];
}IMRT_PARSE_PATH_XML;
#endif
/*----------------------------------------------------------------------------*/
/* Global Variables */
/*----------------------------------------------------------------------------*/
#ifdef _XML_HANDLER_C_
IMRT_Buffer *IMRG_XML_Buffer_Ident_Ptr;
#endif
/*----------------------------------------------------------------------------*/
/* Prototypes */
/*----------------------------------------------------------------------------*/
#ifdef _XML_HANDLER_C_
IMRT_Status MM_XML_StrHdl_Init ( void );
IMRT_Status MM_XML_StrHdl_DeInit ( void );
IMRT_Status XML_Hdl_DataTemp_Alloc ( IMRT_Buffer * );
IMRT_Status XML_Hdl_DataTemp_Free ( IMRT_Buffer * );
IMRT_Status XML_Hdl_DataBuf_Free ( IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Data_Free ( IMRT_Buffer * );
IMRT_Status XML_Hdl_Format_Ident ( IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Ident ( IMRT_Msg_Id * , IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Open ( IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Close ( IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Flush ( IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Data_List ( IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Copy ( IMRT_Buffer * , IMRT_Buffer * );
IMRT_Status XML_Hdl_Field_Exist ( IMRT_Field * , IMRT_Buffer * );
IMRT_Status MM_XML_StrHdl_Get ( IMRT_Buffer_Data ** , IMRT_Field * , IMRT_Buffer * , size_t * );
IMRT_Status MM_XML_StrHdl_Convert ( IMRT_Buffer_Data ** , IMRT_Buffer_Data * , IMRT_Field * , size_t *, IMRT_StrHdl_Cnv_Func * );
IMRT_Status MM_XML_StrHdl_Put ( IMRT_Buffer_Data * , IMRT_Field * , IMRT_Buffer * , size_t );
IMRT_Status IMR_MM_XML_StrHdl_Field_Value ( IMRT_Field * , IMRT_Field_Value_Id);
IMRT_Status IMR_MM_XML_StrHdl_Field_Exist ( IMRT_Field * );
IMRT_Status IMR_MM_XML_StrHdl_Msg_Size ( size_t );
IMRT_Status MM_XML_DInit_StructPath (IMRT_PARSE_PATH_XML * );
IMRT_Status MM_XML_Proceed_Path ( IMRT_PARSE_PATH_XML * , IMRT_Buffer_Data * , xmlDocPtr );
IMRT_Status MM_XML_Split_Path ( IMRT_Buffer_Data * Chaine_Ptr , IMRT_PARSE_PATH_XML * PathXml_Ptr );
IMRT_Status MM_XML_SplitAttribute ( IMRT_PARSE_PATH_XML * PathXml_Ptr );
#else
extern IMRT_Status MM_XML_StrHdl_Init ( void );
extern IMRT_Status MM_XML_StrHdl_DeInit ( void );
extern IMRT_Status MM_XML_StrHdl_Data_Free ( IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Ident ( IMRT_Msg_Id * , IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Open ( IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Close ( IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Flush ( IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Data_List ( IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Copy ( IMRT_Buffer * , IMRT_Buffer * );
extern IMRT_Status MM_XML_StrHdl_Get ( IMRT_Buffer_Data ** , IMRT_Field * , IMRT_Buffer * , size_t * );
extern IMRT_Status MM_XML_StrHdl_Convert ( IMRT_Buffer_Data ** , IMRT_Buffer_Data * , IMRT_Field * , size_t *, IMRT_StrHdl_Cnv_Func * );
extern IMRT_Status MM_XML_StrHdl_Put ( IMRT_Buffer_Data * , IMRT_Field * , IMRT_Buffer * , size_t );
#endif
/*----------------------------------------------------------------------------*/
#endif