1 /* librepo - A library providing (libcURL like) API to downloading repository 2 * Copyright (C) 2013 Tomas Mlcoch 3 * 4 * Licensed under the GNU Lesser General Public License Version 2.1 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21 #ifndef __LR_XMLPARSER_H__ 22 #define __LR_XMLPARSER_H__ 23 24 #include <glib.h> 25 26 G_BEGIN_DECLS 27 28 /** \defgroup xmlparser Common stuff for XML parsers in Librepo (datatypes, etc.) 29 * \addtogroup xmlparser 30 * @{ 31 */ 32 33 #define LR_CB_RET_OK 0 /*!< Return value for callbacks signalizing success */ 34 #define LR_CB_RET_ERR 1 /*!< Return value for callbacks signalizing error */ 35 36 /** Type of warnings reported by parsers by the warning callback. 37 */ 38 typedef enum { 39 LR_XML_WARNING_UNKNOWNTAG, /*!< Unknown tag */ 40 LR_XML_WARNING_MISSINGATTR, /*!< Missing attribute */ 41 LR_XML_WARNING_UNKNOWNVAL, /*!< Unknown tag or attribute value */ 42 LR_XML_WARNING_BADATTRVAL, /*!< Bad attribute value */ 43 LR_XML_WARNING_MISSINGVAL, /*!< Missing tag value */ 44 LR_XML_WARNING_SENTINEL, 45 } LrXmlParserWarningType; 46 47 /** Callback for XML parser warnings. All reported warnings are non-fatal, 48 * and ignored by default. But if callback return LR_CB_RET_ERR instead of 49 * LR_CB_RET_OK then parsing is immediately interrupted. 50 * @param type Type of warning 51 * @param msg Warning msg. The message is destroyed after the call. 52 * If you want to use the message later, you have to copy it. 53 * @param cbdata User data. 54 * @param err GError ** 55 * @return LR_CB_RET_OK (0) or LR_CB_RET_ERR (1) - stops the parsing 56 */ 57 typedef int (*LrXmlParserWarningCb)(LrXmlParserWarningType type, 58 char *msg, 59 void *cbdata, 60 GError **err); 61 62 /** @} */ 63 64 G_END_DECLS 65 66 #endif 67