Tizen 2.1 base
[platform/upstream/glib2.0.git] / glib / gmarkup.h
index d5fb158..a8865da 100644 (file)
@@ -18,7 +18,7 @@
  *   Boston, MA 02111-1307, USA.
  */
 
-#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
 #error "Only <glib.h> can be included directly."
 #endif
 
 
 G_BEGIN_DECLS
 
+/**
+ * GMarkupError:
+ * @G_MARKUP_ERROR_BAD_UTF8: text being parsed was not valid UTF-8
+ * @G_MARKUP_ERROR_EMPTY: document contained nothing, or only whitespace
+ * @G_MARKUP_ERROR_PARSE: document was ill-formed
+ * @G_MARKUP_ERROR_UNKNOWN_ELEMENT: error should be set by #GMarkupParser
+ *     functions; element wasn't known
+ * @G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: error should be set by #GMarkupParser
+ *     functions; attribute wasn't known
+ * @G_MARKUP_ERROR_INVALID_CONTENT: error should be set by #GMarkupParser
+ *     functions; content was invalid
+ * @G_MARKUP_ERROR_MISSING_ATTRIBUTE: error should be set by #GMarkupParser
+ *     functions; a required attribute was missing
+ *
+ * Error codes returned by markup parsing.
+ */
 typedef enum
 {
   G_MARKUP_ERROR_BAD_UTF8,
@@ -46,10 +62,33 @@ typedef enum
   G_MARKUP_ERROR_MISSING_ATTRIBUTE
 } GMarkupError;
 
+/**
+ * G_MARKUP_ERROR:
+ *
+ * Error domain for markup parsing.
+ * Errors in this domain will be from the #GMarkupError enumeration.
+ * See #GError for information on error domains.
+ */
 #define G_MARKUP_ERROR g_markup_error_quark ()
 
 GQuark g_markup_error_quark (void);
 
+/**
+ * GMarkupParseFlags:
+ * @G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: flag you should not use
+ * @G_MARKUP_TREAT_CDATA_AS_TEXT: When this flag is set, CDATA marked
+ *     sections are not passed literally to the @passthrough function of
+ *     the parser. Instead, the content of the section (without the
+ *     <literal>&lt;![CDATA[</literal> and <literal>]]&gt;</literal>) is
+ *     passed to the @text function. This flag was added in GLib 2.12
+ * @G_MARKUP_PREFIX_ERROR_POSITION: Normally errors caught by GMarkup
+ *     itself have line/column information prefixed to them to let the
+ *     caller know the location of the error. When this flag is set the
+ *     location information is also prefixed to errors generated by the
+ *     #GMarkupParser implementation functions
+ *
+ * Flags that affect the behaviour of the parser.
+ */
 typedef enum
 {
   G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
@@ -57,9 +96,45 @@ typedef enum
   G_MARKUP_PREFIX_ERROR_POSITION            = 1 << 2
 } GMarkupParseFlags;
 
+/**
+ * GMarkupParseContext:
+ *
+ * A parse context is used to parse a stream of bytes that
+ * you expect to contain marked-up text.
+ *
+ * See g_markup_parse_context_new(), #GMarkupParser, and so
+ * on for more details.
+ */
 typedef struct _GMarkupParseContext GMarkupParseContext;
 typedef struct _GMarkupParser GMarkupParser;
 
+/**
+ * GMarkupParser:
+ * @start_element: Callback to invoke when the opening tag of an element
+ *     is seen.
+ * @end_element: Callback to invoke when the closing tag of an element
+ *     is seen. Note that this is also called for empty tags like
+ *     <literal>&lt;empty/&gt;</literal>.
+ * @text: Callback to invoke when some text is seen (text is always
+ *     inside an element). Note that the text of an element may be spread
+ *     over multiple calls of this function. If the
+ *     %G_MARKUP_TREAT_CDATA_AS_TEXT flag is set, this function is also
+ *     called for the content of CDATA marked sections.
+ * @passthrough: Callback to invoke for comments, processing instructions
+ *     and doctype declarations; if you're re-writing the parsed document,
+ *     write the passthrough text back out in the same position. If the
+ *     %G_MARKUP_TREAT_CDATA_AS_TEXT flag is not set, this function is also
+ *     called for CDATA marked sections.
+ * @error: Callback to invoke when an error occurs.
+ *
+ * Any of the fields in #GMarkupParser can be %NULL, in which case they
+ * will be ignored. Except for the @error function, any of these callbacks
+ * can set an error; in particular the %G_MARKUP_ERROR_UNKNOWN_ELEMENT,
+ * %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, and %G_MARKUP_ERROR_INVALID_CONTENT
+ * errors are intended to be set from these callbacks. If you set an error
+ * from a callback, g_markup_parse_context_parse() will report that error
+ * back to its caller.
+ */
 struct _GMarkupParser
 {
   /* Called for open tags <foo bar="baz"> */
@@ -80,7 +155,7 @@ struct _GMarkupParser
   /* text is not nul-terminated */
   void (*text)           (GMarkupParseContext *context,
                           const gchar         *text,
-                          gsize                text_len,  
+                          gsize                text_len,
                           gpointer             user_data,
                           GError             **error);
 
@@ -91,7 +166,7 @@ struct _GMarkupParser
   /* text is not nul-terminated. */
   void (*passthrough)    (GMarkupParseContext *context,
                           const gchar         *passthrough_text,
-                          gsize                text_len,  
+                          gsize                text_len,
                           gpointer             user_data,
                           GError             **error);
 
@@ -110,17 +185,17 @@ GMarkupParseContext *g_markup_parse_context_new   (const GMarkupParser *parser,
 void                 g_markup_parse_context_free  (GMarkupParseContext *context);
 gboolean             g_markup_parse_context_parse (GMarkupParseContext *context,
                                                    const gchar         *text,
-                                                   gssize               text_len,  
+                                                   gssize               text_len,
                                                    GError             **error);
 void                 g_markup_parse_context_push  (GMarkupParseContext *context,
-                                                   GMarkupParser       *parser,
+                                                   const GMarkupParser *parser,
                                                    gpointer             user_data);
 gpointer             g_markup_parse_context_pop   (GMarkupParseContext *context);
-                                                   
+
 gboolean             g_markup_parse_context_end_parse (GMarkupParseContext *context,
                                                        GError             **error);
-G_CONST_RETURN gchar *g_markup_parse_context_get_element (GMarkupParseContext *context);
-G_CONST_RETURN GSList *g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
+const gchar *        g_markup_parse_context_get_element (GMarkupParseContext *context);
+const GSList *       g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
 
 /* For user-constructed error messages, has no precise semantics */
 void                 g_markup_parse_context_get_position (GMarkupParseContext *context,
@@ -130,7 +205,7 @@ gpointer             g_markup_parse_context_get_user_data (GMarkupParseContext *
 
 /* useful when saving */
 gchar* g_markup_escape_text (const gchar *text,
-                             gssize       length);  
+                             gssize       length);
 
 gchar *g_markup_printf_escaped (const char *format,
                                ...) G_GNUC_PRINTF (1, 2);