glibmm: Glib::Markup::ParseContext Class Reference

glibmm 2.78.1

Public Member Functions | List of all members
Glib::Markup::ParseContext Class Reference
Simple XML Subset Parser

A parse context is used to parse marked-up documents. More...

`#include <glibmm/markup.h>`

Inheritance diagram for Glib::Markup::ParseContext:
[legend]

## Public Member Functions
| ParseContext (Parser &parser, ParseFlags flags=ParseFlags(0))
| Creates a new parse context.
| ParseContext (const ParseContext &)=delete
ParseContext & | operator= (const ParseContext &)=delete
| ParseContext (ParseContext &&other) noexcept
ParseContext & | operator= (ParseContext &&other) noexcept
virtual | ~ParseContext ()
void | parse (const Glib::ustring &text)
| Feed some data to the ParseContext.
void | parse (const char *text_begin, const char *text_end)
| Feed some data to the ParseContext.
void | end_parse ()
| Signals to the ParseContext that all data has been fed into the parse context with parse().
Glib::ustring | get_element () const
| Retrieves the name of the currently open element.
int | get_line_number () const
| Retrieves the current line number.
int | get_char_number () const
| Retrieves the number of the current character on the current line.
Parser * | get_parser ()
const Parser * | get_parser () const

## Detailed Description

A parse context is used to parse marked-up documents.

You can feed any number of documents into a context, as long as no errors occur; once an error occurs, the parse context can't continue to parse text (you have to destroy it and create a new parse context).

## Constructor & Destructor Documentation

## ◆ ParseContext() [1/3]

Glib::Markup::ParseContext::ParseContext | ( | Parser & | parser,
|  | ParseFlags | flags = ParseFlags(0) )
| explicit

Creates a new parse context.

Parameters

  parser | A Markup::Parser instance.
  flags | Bitwise combination of Markup::ParseFlags.

## ◆ ParseContext() [2/3]

Glib::Markup::ParseContext::ParseContext | ( | const ParseContext & |  | ) |
| delete

## ◆ ParseContext() [3/3]

Glib::Markup::ParseContext::ParseContext | ( | ParseContext && | other | ) |
| noexcept

## ◆ ~ParseContext()

virtual Glib::Markup::ParseContext::~ParseContext | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ end_parse()

void Glib::Markup::ParseContext::end_parse | ( |  | ) |

Signals to the ParseContext that all data has been fed into the parse context with parse().

This method reports an error if the document isn't complete, for example if elements are still open.

Exceptions

  Glib::MarkupError |

## ◆ get_char_number()

int Glib::Markup::ParseContext::get_char_number | ( |  | ) | const

Retrieves the number of the current character on the current line.

Intended for use in error messages; there are no strict semantics for what constitutes the "current" character number other than "the best number we could come up with for error messages."

## ◆ get_element()

Glib::ustring Glib::Markup::ParseContext::get_element | ( |  | ) | const

Retrieves the name of the currently open element.

Returns
  The name of the currently open element, or `""`.

## ◆ get_line_number()

int Glib::Markup::ParseContext::get_line_number | ( |  | ) | const

Retrieves the current line number.

Intended for use in error messages; there are no strict semantics for what constitutes the "current" line number other than "the best number we could come up with for error messages."

## ◆ get_parser() [1/2]

Parser * Glib::Markup::ParseContext::get_parser | ( |  | ) |
| inline

## ◆ get_parser() [2/2]

const Parser * Glib::Markup::ParseContext::get_parser | ( |  | ) | const
| inline

## ◆ operator=() [1/2]

ParseContext & Glib::Markup::ParseContext::operator= | ( | const ParseContext & |  | ) |
| delete

## ◆ operator=() [2/2]

ParseContext & Glib::Markup::ParseContext::operator= | ( | ParseContext && | other | ) |
| noexcept

## ◆ parse() [1/2]

void Glib::Markup::ParseContext::parse | ( | const char * | text_begin,
|  | const char * | text_end )

Feed some data to the ParseContext.

The data need not be valid UTF-8; an error will be signalled if it's invalid. The data need not be an entire document; you can feed a document into the parser incrementally, via multiple calls to this function. Typically, as you receive data from a network connection or file, you feed each received chunk of data into this function, aborting the process if an error occurs. Once an error is reported, no further data may be fed to the ParseContext; all errors are fatal.

Parameters

  text_begin | Begin of chunk of text to parse.
  text_end | End of chunk of text to parse.

Exceptions

  Glib::MarkupError |

## ◆ parse() [2/2]

void Glib::Markup::ParseContext::parse | ( | const Glib::ustring & | text | ) |

Feed some data to the ParseContext.

The data need not be valid UTF-8; an error will be signalled if it's invalid. The data need not be an entire document; you can feed a document into the parser incrementally, via multiple calls to this function. Typically, as you receive data from a network connection or file, you feed each received chunk of data into this function, aborting the process if an error occurs. Once an error is reported, no further data may be fed to the ParseContext; all errors are fatal.

Parameters

  text | Chunk of text to parse.

Exceptions

  Glib::MarkupError |