Classes | Namespaces | Defines | Typedefs | Enumerations | Functions | Variables
pugixml.cpp File Reference
#include "pugixml.hpp"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <float.h>
#include <istream>
#include <ostream>
#include <string>
#include <new>
#include <stdint.h>
Include dependency graph for pugixml.cpp:

Go to the source code of this file.

Classes

struct  auto_deleter< T, D >
struct  axis_to_type< N >
struct  xpath_parser::binary_op_t
struct  document_order_comparator
struct  duplicate_comparator
struct  equal_to
struct  gap
struct  latin1_decoder
struct  latin1_writer
struct  less
struct  less_equal
struct  name_null_sentry
struct  namespace_uri_predicate
struct  not_equal_to
struct  opt_false
struct  opt_true
struct  strconv_attribute_impl< opt_escape >
struct  strconv_pcdata_impl< opt_trim, opt_eol, opt_escape >
struct  utf16_counter
struct  utf16_decoder< opt_swap >
struct  utf16_writer
struct  utf32_counter
struct  utf32_decoder< opt_swap >
struct  utf32_writer
struct  utf8_counter
struct  utf8_decoder
struct  utf8_writer
struct  wchar_decoder
struct  wchar_selector< 2 >
struct  wchar_selector< 4 >
struct  xml_allocator
struct  pugi::xml_attribute_struct
class  xml_buffered_writer
struct  xml_document_struct
struct  xml_extra_buffer
struct  xml_memory_management_function_storage< T >
struct  xml_memory_page
struct  xml_memory_string_header
struct  pugi::xml_node_struct
struct  xml_parser
struct  xml_stream_chunk< T >
class  xpath_allocator
struct  xpath_allocator_capture
class  xpath_ast_node
struct  xpath_context
class  xpath_lexer
struct  xpath_lexer_string
struct  xpath_memory_block
class  xpath_node_set_raw
struct  xpath_parser
struct  xpath_query_impl
struct  xpath_stack
struct  xpath_stack_data
class  xpath_string
struct  xpath_variable_boolean
struct  xpath_variable_node_set
struct  xpath_variable_number
struct  xpath_variable_string

Namespaces

namespace  pugi

Defines

#define PUGI__CHECK_ERROR(err, m)   { if (*s == 0) PUGI__THROW_ERROR(err, m); }
#define PUGI__DMC_VOLATILE
#define PUGI__ENDSEG()   { ch = *s; *s = 0; ++s; }
#define PUGI__ENDSWITH(c, e)   ((c) == (e) || ((c) == 0 && endch == (e)))
#define PUGI__FN
#define PUGI__FN_NO_INLINE   PUGI__NO_INLINE
#define PUGI__GETPAGE(n)   PUGI__GETPAGE_IMPL((n)->header)
#define PUGI__GETPAGE_IMPL(header)   reinterpret_cast<impl::xml_memory_page*>((header) & impl::xml_memory_page_pointer_mask)
#define PUGI__IS_CHARTYPE(c, ct)   PUGI__IS_CHARTYPE_IMPL(c, ct, chartype_table)
#define PUGI__IS_CHARTYPE_IMPL(c, ct, table)   (table[static_cast<unsigned char>(c)] & (ct))
#define PUGI__IS_CHARTYPEX(c, ct)   PUGI__IS_CHARTYPE_IMPL(c, ct, chartypex_table)
#define PUGI__NO_INLINE
#define PUGI__NODETYPE(n)   static_cast<xml_node_type>(((n)->header & impl::xml_memory_page_type_mask) + 1)
#define PUGI__NS_BEGIN   namespace pugi { namespace impl { namespace {
#define PUGI__NS_END   } } }
#define PUGI__OPTSET(OPT)   ( optmsk & (OPT) )
#define PUGI__POPNODE()   { cursor = cursor->parent; }
#define PUGI__PUSHNODE(TYPE)   { cursor = append_new_node(cursor, alloc, TYPE); if (!cursor) PUGI__THROW_ERROR(status_out_of_memory, s); }
#define PUGI__SCANFOR(X)   { while (*s != 0 && !(X)) ++s; }
#define PUGI__SCANWHILE(X)   { while (X) ++s; }
#define PUGI__SCANWHILE_UNROLL(X)   { for (;;) { char_t ss = s[0]; if (PUGI__UNLIKELY(!(X))) { break; } ss = s[1]; if (PUGI__UNLIKELY(!(X))) { s += 1; break; } ss = s[2]; if (PUGI__UNLIKELY(!(X))) { s += 2; break; } ss = s[3]; if (PUGI__UNLIKELY(!(X))) { s += 3; break; } s += 4; } }
#define PUGI__SKIPWS()   { while (PUGI__IS_CHARTYPE(*s, ct_space)) ++s; }
#define PUGI__STATIC_ASSERT(cond)   { static const char condition_failed[(cond) ? 1 : -1] = {0}; (void)condition_failed[0]; }
#define PUGI__THROW_ERROR(err, m)   return error_offset = m, error_status = err, static_cast<char_t*>(0)
#define PUGI__UNLIKELY(cond)   (cond)
#define SOURCE_PUGIXML_CPP

Typedefs

typedef char_t *(* strconv_attribute_t )(char_t *, char_t)
typedef char_t *(* strconv_pcdata_t )(char_t *)
typedef wchar_selector< sizeof(wchar_t)>
::counter 
wchar_counter
typedef wchar_selector< sizeof(wchar_t)>
::writer 
wchar_writer
typedef
xml_memory_management_function_storage
< int > 
xml_memory

Enumerations

enum  ast_type_t {
  ast_unknown, ast_op_or, ast_op_and, ast_op_equal,
  ast_op_not_equal, ast_op_less, ast_op_greater, ast_op_less_or_equal,
  ast_op_greater_or_equal, ast_op_add, ast_op_subtract, ast_op_multiply,
  ast_op_divide, ast_op_mod, ast_op_negate, ast_op_union,
  ast_predicate, ast_filter, ast_string_constant, ast_number_constant,
  ast_variable, ast_func_last, ast_func_position, ast_func_count,
  ast_func_id, ast_func_local_name_0, ast_func_local_name_1, ast_func_namespace_uri_0,
  ast_func_namespace_uri_1, ast_func_name_0, ast_func_name_1, ast_func_string_0,
  ast_func_string_1, ast_func_concat, ast_func_starts_with, ast_func_contains,
  ast_func_substring_before, ast_func_substring_after, ast_func_substring_2, ast_func_substring_3,
  ast_func_string_length_0, ast_func_string_length_1, ast_func_normalize_space_0, ast_func_normalize_space_1,
  ast_func_translate, ast_func_boolean, ast_func_not, ast_func_true,
  ast_func_false, ast_func_lang, ast_func_number_0, ast_func_number_1,
  ast_func_sum, ast_func_floor, ast_func_ceiling, ast_func_round,
  ast_step, ast_step_root, ast_opt_translate_table, ast_opt_compare_attribute
}
enum  axis_t {
  axis_ancestor, axis_ancestor_or_self, axis_attribute, axis_child,
  axis_descendant, axis_descendant_or_self, axis_following, axis_following_sibling,
  axis_namespace, axis_parent, axis_preceding, axis_preceding_sibling,
  axis_self
}
enum  chartype_t {
  ct_parse_pcdata = 1, ct_parse_attr = 2, ct_parse_attr_ws = 4, ct_space = 8,
  ct_parse_cdata = 16, ct_parse_comment = 32, ct_symbol = 64, ct_start_symbol = 128
}
enum  chartypex_t {
  ctx_special_pcdata = 1, ctx_special_attr = 2, ctx_start_symbol = 4, ctx_digit = 8,
  ctx_symbol = 16
}
enum  indent_flags_t { indent_newline = 1, indent_indent = 2 }
enum  lexeme_t {
  lex_none = 0, lex_equal, lex_not_equal, lex_less,
  lex_greater, lex_less_or_equal, lex_greater_or_equal, lex_plus,
  lex_minus, lex_multiply, lex_union, lex_var_ref,
  lex_open_brace, lex_close_brace, lex_quoted_string, lex_number,
  lex_slash, lex_double_slash, lex_open_square_brace, lex_close_square_brace,
  lex_string, lex_comma, lex_axis_attribute, lex_dot,
  lex_double_dot, lex_double_colon, lex_eof
}
enum  nodeset_eval_t { nodeset_eval_all, nodeset_eval_any, nodeset_eval_first }
enum  nodetest_t {
  nodetest_none, nodetest_name, nodetest_type_node, nodetest_type_comment,
  nodetest_type_pi, nodetest_type_text, nodetest_pi, nodetest_all,
  nodetest_all_in_namespace
}
enum  predicate_t { predicate_default, predicate_posinv, predicate_constant, predicate_constant_one }

Functions

PUGI__NS_END PUGI__NS_BEGIN
xml_attribute_struct * 
allocate_attribute (xml_allocator &alloc)
xml_node_struct * allocate_node (xml_allocator &alloc, xml_node_type type)
PUGI__FN bool allow_insert_attribute (xml_node_type parent)
PUGI__FN bool allow_insert_child (xml_node_type parent, xml_node_type child)
PUGI__FN bool allow_move (xml_node parent, xml_node child)
void append_attribute (xml_attribute_struct *attr, xml_node_struct *node)
PUGI__FN_NO_INLINE
xml_attribute_struct * 
append_new_attribute (xml_node_struct *node, xml_allocator &alloc)
PUGI__FN_NO_INLINE
xml_node_struct * 
append_new_node (xml_node_struct *node, xml_allocator &alloc, xml_node_type type=node_element)
void append_node (xml_node_struct *child, xml_node_struct *node)
std::basic_string< char,
std::char_traits< char >
, std::allocator< char >
> PUGIXML_FUNCTION 
pugi::as_utf8 (const wchar_t *str)
PUGI__FN std::string
PUGIXML_FUNCTION 
pugi::as_utf8 (const std::basic_string< wchar_t > &str)
PUGI__FN size_t as_utf8_begin (const wchar_t *str, size_t length)
PUGI__FN void as_utf8_end (char *buffer, size_t size, const wchar_t *str, size_t length)
PUGI__FN std::string as_utf8_impl (const wchar_t *str, size_t length)
std::basic_string< wchar_t,
std::char_traits< wchar_t >
, std::allocator< wchar_t >
> PUGIXML_FUNCTION 
pugi::as_wide (const char *str)
PUGI__FN std::basic_string
< wchar_t > PUGIXML_FUNCTION 
pugi::as_wide (const std::string &str)
PUGI__FN std::basic_string
< wchar_t > 
as_wide_impl (const char *str, size_t size)
PUGI__FN bool check_string_to_number_format (const char_t *string)
PUGI__FN bool convert_buffer (char_t *&out_buffer, size_t &out_length, xml_encoding encoding, const void *contents, size_t size, bool is_mutable)
template<typename D >
PUGI__FN bool convert_buffer_generic (char_t *&out_buffer, size_t &out_length, const void *contents, size_t size, D)
PUGI__FN bool convert_buffer_latin1 (char_t *&out_buffer, size_t &out_length, const void *contents, size_t size, bool is_mutable)
PUGI__FN size_t convert_buffer_output (char_t *, uint8_t *r_u8, uint16_t *r_u16, uint32_t *r_u32, const char_t *data, size_t length, xml_encoding encoding)
template<typename D , typename T >
PUGI__FN size_t convert_buffer_output_generic (typename T::value_type dest, const char_t *data, size_t length, D, T)
template<typename D , typename T >
PUGI__FN size_t convert_buffer_output_generic (typename T::value_type dest, const char_t *data, size_t length, D, T, bool opt_swap)
PUGI__FN bool convert_number_to_boolean (double value)
PUGI__FN void convert_number_to_mantissa_exponent (double value, char *buffer, size_t buffer_size, char **out_mantissa, int *out_exponent)
PUGI__FN xpath_string convert_number_to_string (double value, xpath_allocator *alloc)
PUGI__FN const char_t * convert_number_to_string_special (double value)
PUGI__FN char * convert_path_heap (const wchar_t *str)
PUGI__FN double convert_string_to_number (const char_t *string)
PUGI__FN bool convert_string_to_number_scratch (char_t(&buffer)[32], const char_t *begin, const char_t *end, double *out_result)
template<typename I >
void copy_backwards (I begin, I end, I target)
PUGI__FN bool copy_xpath_variable (xpath_variable *lhs, const xpath_variable *rhs)
PUGI__NS_BEGIN PUGI__FN void * default_allocate (size_t size)
PUGI__FN void default_deallocate (void *ptr)
template<typename T >
PUGI__FN void delete_xpath_variable (T *var)
PUGI__FN void delete_xpath_variable (xpath_value_type type, xpath_variable *var)
void destroy_attribute (xml_attribute_struct *a, xml_allocator &alloc)
void destroy_node (xml_node_struct *n, xml_allocator &alloc)
PUGI__FN const void * document_buffer_order (const xpath_node &xnode)
PUGI__NS_END PUGI__NS_BEGIN
uint16_t 
endian_swap (uint16_t value)
uint32_t endian_swap (uint32_t value)
PUGI__FN impl::xpath_ast_node * evaluate_node_set_prepare (xpath_query_impl *impl)
PUGI__FN xpath_string evaluate_string_impl (xpath_query_impl *impl, const xpath_node &n, xpath_stack_data &sd)
PUGI__FN const char_t * find_char (const char_t *s, char_t c)
PUGI__FN const char_t * find_substring (const char_t *s, const char_t *p)
PUGI__FN double gen_nan ()
template<typename Object >
xml_allocatorget_allocator (const Object *object)
PUGI__FN xml_encoding get_buffer_encoding (xml_encoding encoding, const void *contents, size_t size)
template<typename Object >
xml_document_structget_document (const Object *object)
PUGI__FN xml_parse_status get_file_size (FILE *file, size_t &out_result)
PUGI__FN size_t get_latin1_7bit_prefix_length (const uint8_t *data, size_t size)
allocation_function
PUGIXML_FUNCTION 
pugi::get_memory_allocation_function ()
deallocation_function
PUGIXML_FUNCTION 
pugi::get_memory_deallocation_function ()
PUGI__FN bool get_mutable_buffer (char_t *&out_buffer, size_t &out_length, const void *contents, size_t size, bool is_mutable)
PUGI__FN strconv_attribute_t get_strconv_attribute (unsigned int optmask)
PUGI__FN strconv_pcdata_t get_strconv_pcdata (unsigned int optmask)
PUGI__FN size_t get_valid_length (const char_t *data, size_t length)
PUGI__FN bool get_value_bool (const char_t *value)
PUGI__FN double get_value_double (const char_t *value)
PUGI__FN float get_value_float (const char_t *value)
PUGI__FN int get_value_int (const char_t *value)
PUGI__FN unsigned int get_value_uint (const char_t *value)
PUGI__FN bool get_variable_scratch (char_t(&buffer)[32], xpath_variable_set *set, const char_t *begin, const char_t *end, xpath_variable **out_result)
PUGI__FN xml_encoding get_wchar_encoding ()
PUGI__FN xml_encoding get_write_encoding (xml_encoding encoding)
PUGI__FN xml_encoding get_write_native_encoding ()
PUGI__FN xml_encoding guess_buffer_encoding (uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
PUGI__FN bool has_declaration (xml_node_struct *node)
PUGI__FN unsigned int hash_string (const char_t *str)
void insert_attribute_after (xml_attribute_struct *attr, xml_attribute_struct *place, xml_node_struct *node)
void insert_attribute_before (xml_attribute_struct *attr, xml_attribute_struct *place, xml_node_struct *node)
void insert_node_after (xml_node_struct *child, xml_node_struct *node)
void insert_node_before (xml_node_struct *child, xml_node_struct *node)
template<typename I , typename Pred , typename T >
void insertion_sort (I begin, I end, const Pred &pred, T *)
template<typename U >
PUGI__FN char_t * integer_to_string (char_t *begin, char_t *end, U value, bool negative)
PUGI__FN bool is_attribute_of (xml_attribute_struct *attr, xml_node_struct *node)
PUGI__FN bool is_little_endian ()
PUGI__FN bool is_nan (double value)
bool is_text_node (xml_node_struct *node)
bool is_xpath_attribute (const char_t *name)
PUGI__FN xml_parse_result load_buffer_impl (xml_document_struct *doc, xml_node_struct *root, void *contents, size_t size, unsigned int options, xml_encoding encoding, bool is_mutable, bool own, char_t **out_buffer)
PUGI__FN xml_parse_result load_file_impl (xml_document_struct *doc, FILE *file, unsigned int options, xml_encoding encoding, char_t **out_buffer)
template<typename T >
PUGI__FN xml_parse_status load_stream_data_noseek (std::basic_istream< T > &stream, void **out_buffer, size_t *out_size)
template<typename T >
PUGI__FN xml_parse_status load_stream_data_seek (std::basic_istream< T > &stream, void **out_buffer, size_t *out_size)
template<typename T >
PUGI__FN xml_parse_result load_stream_impl (xml_document_struct *doc, std::basic_istream< T > &stream, unsigned int options, xml_encoding encoding, char_t **out_buffer)
PUGI__FN const char_t * local_name (const xpath_node &node)
xml_parse_result make_parse_result (xml_parse_status status, ptrdiff_t offset=0)
template<typename I , typename Pred >
void median (I first, I middle, I last, const Pred &pred)
template<typename I , typename Pred >
void median3 (I first, I middle, I last, const Pred &pred)
template<typename I , typename Pred >
min_element (I begin, I end, const Pred &pred)
PUGI__FN const char_t * namespace_uri (xml_node node)
PUGI__FN const char_t * namespace_uri (xml_attribute attr, xml_node parent)
PUGI__FN const char_t * namespace_uri (const xpath_node &node)
template<typename T >
PUGI__FN T * new_xpath_variable (const char_t *name)
PUGI__FN xpath_variable * new_xpath_variable (xpath_value_type type, const char_t *name)
PUGI__FN void node_copy_attribute (xml_attribute_struct *da, xml_attribute_struct *sa)
PUGI__FN void node_copy_contents (xml_node_struct *dn, xml_node_struct *sn, xml_allocator *shared_alloc)
template<typename String , typename Header >
PUGI__FN void node_copy_string (String &dest, Header &header, uintptr_t header_mask, char_t *source, Header &source_header, xml_allocator *alloc)
PUGI__FN void node_copy_tree (xml_node_struct *dn, xml_node_struct *sn)
PUGI__FN bool node_is_ancestor (xml_node_struct *parent, xml_node_struct *node)
PUGI__FN bool node_is_before (xml_node_struct *ln, xml_node_struct *rn)
PUGI__FN bool node_is_before_sibling (xml_node_struct *ln, xml_node_struct *rn)
PUGI__FN void node_output (xml_buffered_writer &writer, xml_node_struct *root, const char_t *indent, unsigned int flags, unsigned int depth)
PUGI__FN void node_output_attributes (xml_buffered_writer &writer, xml_node_struct *node, const char_t *indent, size_t indent_length, unsigned int flags, unsigned int depth)
PUGI__FN void node_output_comment (xml_buffered_writer &writer, const char_t *s)
PUGI__FN void node_output_end (xml_buffered_writer &writer, xml_node_struct *node)
PUGI__FN void node_output_pi_value (xml_buffered_writer &writer, const char_t *s)
PUGI__FN void node_output_simple (xml_buffered_writer &writer, xml_node_struct *node, unsigned int flags)
PUGI__FN bool node_output_start (xml_buffered_writer &writer, xml_node_struct *node, const char_t *indent, size_t indent_length, unsigned int flags, unsigned int depth)
PUGI__FN char_t * normalize_space (char_t *buffer)
PUGI__FN FILE * open_file_wide (const wchar_t *path, const wchar_t *mode)
template<typename I , typename Pred >
void partition (I begin, I middle, I end, const Pred &pred, I *out_eqbeg, I *out_eqend)
void prepend_attribute (xml_attribute_struct *attr, xml_node_struct *node)
void prepend_node (xml_node_struct *child, xml_node_struct *node)
PUGI__FN const char_t * qualified_name (const xpath_node &node)
void remove_attribute (xml_attribute_struct *attr, xml_node_struct *node)
void remove_node (xml_node_struct *node)
template<typename I >
void reverse (I begin, I end)
PUGI__FN double round_nearest (double value)
PUGI__FN double round_nearest_nzero (double value)
PUGI__FN bool save_file_impl (const xml_document &doc, FILE *file, const char_t *indent, unsigned int flags, xml_encoding encoding)
void PUGIXML_FUNCTION pugi::set_memory_management_functions (allocation_function allocate, deallocation_function deallocate)
template<typename String , typename Header >
PUGI__FN bool set_value_ascii (String &dest, Header &header, uintptr_t header_mask, char *buf)
template<typename String , typename Header >
PUGI__FN bool set_value_convert (String &dest, Header &header, uintptr_t header_mask, int value)
template<typename String , typename Header >
PUGI__FN bool set_value_convert (String &dest, Header &header, uintptr_t header_mask, unsigned int value)
template<typename String , typename Header >
PUGI__FN bool set_value_convert (String &dest, Header &header, uintptr_t header_mask, float value)
template<typename String , typename Header >
PUGI__FN bool set_value_convert (String &dest, Header &header, uintptr_t header_mask, double value)
template<typename String , typename Header >
PUGI__FN bool set_value_convert (String &dest, Header &header, uintptr_t header_mask, bool value)
template<typename I , typename Pred >
void sort (I begin, I end, const Pred &pred)
PUGI__NS_END PUGI__NS_BEGIN
PUGI__FN bool 
starts_with (const char_t *string, const char_t *pattern)
PUGI__FN char_t * strconv_cdata (char_t *s, char_t endch)
PUGI__FN char_t * strconv_comment (char_t *s, char_t endch)
PUGI__FN char_t * strconv_escape (char_t *s, gap &g)
template<typename String , typename Header >
PUGI__FN bool strcpy_insitu (String &dest, Header &header, uintptr_t header_mask, const char_t *source, size_t source_length)
template<typename Header >
bool strcpy_insitu_allow (size_t length, const Header &header, uintptr_t header_mask, char_t *target)
PUGI__FN bool strequal (const char_t *src, const char_t *dst)
PUGI__FN bool strequalrange (const char_t *lhs, const char_t *rhs, size_t count)
template<typename U >
string_to_integer (const char_t *value, U minneg, U maxpos)
PUGI__FN xpath_string string_value (const xpath_node &na, xpath_allocator *alloc)
PUGI__NS_END PUGI__NS_BEGIN
PUGI__FN size_t 
strlength (const char_t *s)
PUGI__FN size_t strlength_wide (const wchar_t *s)
template<typename T >
void swap (T &lhs, T &rhs)
PUGI__FN void text_output (xml_buffered_writer &writer, const char_t *s, chartypex_t type, unsigned int flags)
PUGI__FN void text_output_cdata (xml_buffered_writer &writer, const char_t *s)
PUGI__FN void text_output_escaped (xml_buffered_writer &writer, const char_t *s, chartypex_t type)
PUGI__FN void text_output_indent (xml_buffered_writer &writer, const char_t *indent, size_t indent_length, unsigned int depth)
PUGI__FN char_t tolower_ascii (char_t ch)
PUGI__FN char_t * translate (char_t *buffer, const char_t *from, const char_t *to, size_t to_length)
PUGI__FN char_t * translate_table (char_t *buffer, const unsigned char *table)
PUGI__FN unsigned char * translate_table_generate (xpath_allocator *alloc, const char_t *from, const char_t *to)
PUGI__FN void truncate_zeros (char *begin, char *end)
template<typename I >
unique (I begin, I end)
static PUGI__FN void pugi::unspecified_bool_xml_attribute (xml_attribute ***)
static PUGI__FN void pugi::unspecified_bool_xml_node (xml_node ***)
static PUGI__FN void pugi::unspecified_bool_xml_text (xml_text ***)
static PUGI__FN void pugi::unspecified_bool_xpath_node (xpath_node ***)
static PUGI__FN void pugi::unspecified_bool_xpath_query (xpath_query ***)
PUGI__FN xpath_node xpath_first (const xpath_node *begin, const xpath_node *end, xpath_node_set::type_t type)
PUGI__NS_END PUGI__NS_BEGIN
PUGI__FN
xpath_node_set::type_t 
xpath_get_order (const xpath_node *begin, const xpath_node *end)
PUGI__FN xpath_node_set::type_t xpath_sort (xpath_node *begin, xpath_node *end, xpath_node_set::type_t type, bool rev)
PUGI__FN size_t zero_terminate_buffer (void *buffer, size_t size, xml_encoding encoding)

Variables

static const unsigned char chartype_table [256]
static const unsigned char chartypex_table [256]
static const xpath_node_set dummy_node_set
static const uintptr_t xml_memory_block_alignment = sizeof(void*)
static const uintptr_t xml_memory_page_alignment = 64
static const uintptr_t xml_memory_page_contents_shared_mask = 32
static const uintptr_t xml_memory_page_name_allocated_mask = 16
static const uintptr_t xml_memory_page_name_allocated_or_shared_mask = xml_memory_page_name_allocated_mask | xml_memory_page_contents_shared_mask
static const uintptr_t xml_memory_page_pointer_mask = ~(xml_memory_page_alignment - 1)
PUGI__NS_END static
PUGI__NS_BEGIN const size_t 
xml_memory_page_size
static const uintptr_t xml_memory_page_type_mask = 7
static const uintptr_t xml_memory_page_value_allocated_mask = 8
static const uintptr_t xml_memory_page_value_allocated_or_shared_mask = xml_memory_page_value_allocated_mask | xml_memory_page_contents_shared_mask
static const uintptr_t xpath_memory_block_alignment = sizeof(double) > sizeof(void*) ? sizeof(double) : sizeof(void*)
PUGI__NS_END static
PUGI__NS_BEGIN const size_t 
xpath_memory_page_size

Define Documentation

#define PUGI__CHECK_ERROR (   err,
 
)    { if (*s == 0) PUGI__THROW_ERROR(err, m); }

Definition at line 2505 of file pugixml.cpp.

Definition at line 102 of file pugixml.cpp.

#define PUGI__ENDSEG ( )    { ch = *s; *s = 0; ++s; }

Definition at line 2503 of file pugixml.cpp.

#define PUGI__ENDSWITH (   c,
 
)    ((c) == (e) || ((c) == 0 && endch == (e)))

Definition at line 2495 of file pugixml.cpp.

#define PUGI__FN

Definition at line 130 of file pugixml.cpp.

Definition at line 131 of file pugixml.cpp.

#define PUGI__GETPAGE (   n)    PUGI__GETPAGE_IMPL((n)->header)

Definition at line 432 of file pugixml.cpp.

#define PUGI__GETPAGE_IMPL (   header)    reinterpret_cast<impl::xml_memory_page*>((header) & impl::xml_memory_page_pointer_mask)

Definition at line 429 of file pugixml.cpp.

#define PUGI__IS_CHARTYPE (   c,
  ct 
)    PUGI__IS_CHARTYPE_IMPL(c, ct, chartype_table)

Definition at line 1879 of file pugixml.cpp.

#define PUGI__IS_CHARTYPE_IMPL (   c,
  ct,
  table 
)    (table[static_cast<unsigned char>(c)] & (ct))

Definition at line 1876 of file pugixml.cpp.

#define PUGI__IS_CHARTYPEX (   c,
  ct 
)    PUGI__IS_CHARTYPE_IMPL(c, ct, chartypex_table)

Definition at line 1880 of file pugixml.cpp.

#define PUGI__NO_INLINE

Definition at line 85 of file pugixml.cpp.

#define PUGI__NODETYPE (   n)    static_cast<xml_node_type>(((n)->header & impl::xml_memory_page_type_mask) + 1)

Definition at line 433 of file pugixml.cpp.

#define PUGI__NS_BEGIN   namespace pugi { namespace impl { namespace {

Definition at line 127 of file pugixml.cpp.

#define PUGI__NS_END   } } }

Definition at line 128 of file pugixml.cpp.

#define PUGI__OPTSET (   OPT)    ( optmsk & (OPT) )

Definition at line 2497 of file pugixml.cpp.

#define PUGI__POPNODE ( )    { cursor = cursor->parent; }

Definition at line 2499 of file pugixml.cpp.

#define PUGI__PUSHNODE (   TYPE)    { cursor = append_new_node(cursor, alloc, TYPE); if (!cursor) PUGI__THROW_ERROR(status_out_of_memory, s); }

Definition at line 2498 of file pugixml.cpp.

#define PUGI__SCANFOR (   X)    { while (*s != 0 && !(X)) ++s; }

Definition at line 2500 of file pugixml.cpp.

#define PUGI__SCANWHILE (   X)    { while (X) ++s; }

Definition at line 2501 of file pugixml.cpp.

#define PUGI__SCANWHILE_UNROLL (   X)    { for (;;) { char_t ss = s[0]; if (PUGI__UNLIKELY(!(X))) { break; } ss = s[1]; if (PUGI__UNLIKELY(!(X))) { s += 1; break; } ss = s[2]; if (PUGI__UNLIKELY(!(X))) { s += 2; break; } ss = s[3]; if (PUGI__UNLIKELY(!(X))) { s += 3; break; } s += 4; } }

Definition at line 2502 of file pugixml.cpp.

#define PUGI__SKIPWS ( )    { while (PUGI__IS_CHARTYPE(*s, ct_space)) ++s; }

Definition at line 2496 of file pugixml.cpp.

#define PUGI__STATIC_ASSERT (   cond)    { static const char condition_failed[(cond) ? 1 : -1] = {0}; (void)condition_failed[0]; }

Definition at line 96 of file pugixml.cpp.

#define PUGI__THROW_ERROR (   err,
 
)    return error_offset = m, error_status = err, static_cast<char_t*>(0)

Definition at line 2504 of file pugixml.cpp.

#define PUGI__UNLIKELY (   cond)    (cond)

Definition at line 92 of file pugixml.cpp.

pugixml parser - version 1.7 -------------------------------------------------------- Copyright (C) 2006-2015, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) Report bugs and download new versions at http://pugixml.org/

This library is distributed under the MIT License. See notice at the end of this file.

This work is based on the pugxml parser, which is: Copyright (C) 2003, by Kristen Wegner (kristen@tima.net)

Definition at line 15 of file pugixml.cpp.


Typedef Documentation

typedef char_t*(* strconv_attribute_t)(char_t *, char_t)

Definition at line 2634 of file pugixml.cpp.

typedef char_t*(* strconv_pcdata_t)(char_t *)

Definition at line 2563 of file pugixml.cpp.

typedef wchar_selector<sizeof(wchar_t)>::counter wchar_counter

Definition at line 1784 of file pugixml.cpp.

typedef wchar_selector<sizeof(wchar_t)>::writer wchar_writer

Definition at line 1785 of file pugixml.cpp.

Definition at line 174 of file pugixml.cpp.


Enumeration Type Documentation

enum ast_type_t
Enumerator:
ast_unknown 
ast_op_or 
ast_op_and 
ast_op_equal 
ast_op_not_equal 
ast_op_less 
ast_op_greater 
ast_op_less_or_equal 
ast_op_greater_or_equal 
ast_op_add 
ast_op_subtract 
ast_op_multiply 
ast_op_divide 
ast_op_mod 
ast_op_negate 
ast_op_union 
ast_predicate 
ast_filter 
ast_string_constant 
ast_number_constant 
ast_variable 
ast_func_last 
ast_func_position 
ast_func_count 
ast_func_id 
ast_func_local_name_0 
ast_func_local_name_1 
ast_func_namespace_uri_0 
ast_func_namespace_uri_1 
ast_func_name_0 
ast_func_name_1 
ast_func_string_0 
ast_func_string_1 
ast_func_concat 
ast_func_starts_with 
ast_func_contains 
ast_func_substring_before 
ast_func_substring_after 
ast_func_substring_2 
ast_func_substring_3 
ast_func_string_length_0 
ast_func_string_length_1 
ast_func_normalize_space_0 
ast_func_normalize_space_1 
ast_func_translate 
ast_func_boolean 
ast_func_not 
ast_func_true 
ast_func_false 
ast_func_lang 
ast_func_number_0 
ast_func_number_1 
ast_func_sum 
ast_func_floor 
ast_func_ceiling 
ast_func_round 
ast_step 
ast_step_root 
ast_opt_translate_table 
ast_opt_compare_attribute 

Definition at line 9019 of file pugixml.cpp.

enum axis_t
Enumerator:
axis_ancestor 
axis_ancestor_or_self 
axis_attribute 
axis_child 
axis_descendant 
axis_descendant_or_self 
axis_following 
axis_following_sibling 
axis_namespace 
axis_parent 
axis_preceding 
axis_preceding_sibling 
axis_self 

Definition at line 9084 of file pugixml.cpp.

enum chartype_t
Enumerator:
ct_parse_pcdata 
ct_parse_attr 
ct_parse_attr_ws 
ct_space 
ct_parse_cdata 
ct_parse_comment 
ct_symbol 
ct_start_symbol 

Definition at line 1809 of file pugixml.cpp.

Enumerator:
ctx_special_pcdata 
ctx_special_attr 
ctx_start_symbol 
ctx_digit 
ctx_symbol 

Definition at line 1842 of file pugixml.cpp.

Enumerator:
indent_newline 
indent_indent 

Definition at line 4085 of file pugixml.cpp.

enum lexeme_t
Enumerator:
lex_none 
lex_equal 
lex_not_equal 
lex_less 
lex_greater 
lex_less_or_equal 
lex_greater_or_equal 
lex_plus 
lex_minus 
lex_multiply 
lex_union 
lex_var_ref 
lex_open_brace 
lex_close_brace 
lex_quoted_string 
lex_number 
lex_slash 
lex_double_slash 
lex_open_square_brace 
lex_close_square_brace 
lex_string 
lex_comma 
lex_axis_attribute 
lex_dot 
lex_double_dot 
lex_double_colon 
lex_eof 

Definition at line 8665 of file pugixml.cpp.

Enumerator:
nodeset_eval_all 
nodeset_eval_any 
nodeset_eval_first 

Definition at line 9122 of file pugixml.cpp.

enum nodetest_t
Enumerator:
nodetest_none 
nodetest_name 
nodetest_type_node 
nodetest_type_comment 
nodetest_type_pi 
nodetest_type_text 
nodetest_pi 
nodetest_all 
nodetest_all_in_namespace 

Definition at line 9101 of file pugixml.cpp.

Enumerator:
predicate_default 
predicate_posinv 
predicate_constant 
predicate_constant_one 

Definition at line 9114 of file pugixml.cpp.


Function Documentation

PUGI__NS_END PUGI__NS_BEGIN xml_attribute_struct* allocate_attribute ( xml_allocator alloc) [inline]

Definition at line 1154 of file pugixml.cpp.

xml_node_struct* allocate_node ( xml_allocator alloc,
xml_node_type  type 
) [inline]

Definition at line 1163 of file pugixml.cpp.

PUGI__FN bool allow_insert_attribute ( xml_node_type  parent)

Definition at line 4202 of file pugixml.cpp.

PUGI__FN bool allow_insert_child ( xml_node_type  parent,
xml_node_type  child 
)

Definition at line 4207 of file pugixml.cpp.

PUGI__FN bool allow_move ( xml_node  parent,
xml_node  child 
)

Definition at line 4216 of file pugixml.cpp.

void append_attribute ( xml_attribute_struct *  attr,
xml_node_struct *  node 
) [inline]

Definition at line 1304 of file pugixml.cpp.

PUGI__FN_NO_INLINE xml_attribute_struct* append_new_attribute ( xml_node_struct *  node,
xml_allocator alloc 
)

Definition at line 1391 of file pugixml.cpp.

PUGI__FN_NO_INLINE xml_node_struct* append_new_node ( xml_node_struct *  node,
xml_allocator alloc,
xml_node_type  type = node_element 
)

Definition at line 1379 of file pugixml.cpp.

void append_node ( xml_node_struct *  child,
xml_node_struct *  node 
) [inline]

Definition at line 1212 of file pugixml.cpp.

PUGI__FN size_t as_utf8_begin ( const wchar_t *  str,
size_t  length 
)

Definition at line 2188 of file pugixml.cpp.

PUGI__FN void as_utf8_end ( char *  buffer,
size_t  size,
const wchar_t *  str,
size_t  length 
)

Definition at line 2194 of file pugixml.cpp.

PUGI__FN std::string as_utf8_impl ( const wchar_t *  str,
size_t  length 
)

Definition at line 2206 of file pugixml.cpp.

PUGI__FN std::basic_string<wchar_t> as_wide_impl ( const char *  str,
size_t  size 
)

Definition at line 2221 of file pugixml.cpp.

PUGI__FN bool check_string_to_number_format ( const char_t *  string)

Definition at line 8009 of file pugixml.cpp.

PUGI__FN bool convert_buffer ( char_t *&  out_buffer,
size_t &  out_length,
xml_encoding  encoding,
const void *  contents,
size_t  size,
bool  is_mutable 
)

Definition at line 2153 of file pugixml.cpp.

template<typename D >
PUGI__FN bool convert_buffer_generic ( char_t *&  out_buffer,
size_t &  out_length,
const void *  contents,
size_t  size,
 
)

Definition at line 2082 of file pugixml.cpp.

PUGI__FN bool convert_buffer_latin1 ( char_t *&  out_buffer,
size_t &  out_length,
const void *  contents,
size_t  size,
bool  is_mutable 
)

Definition at line 2116 of file pugixml.cpp.

PUGI__FN size_t convert_buffer_output ( char_t *  ,
uint8_t *  r_u8,
uint16_t *  r_u16,
uint32_t *  r_u32,
const char_t *  data,
size_t  length,
xml_encoding  encoding 
)

Definition at line 3572 of file pugixml.cpp.

template<typename D , typename T >
PUGI__FN size_t convert_buffer_output_generic ( typename T::value_type  dest,
const char_t *  data,
size_t  length,
,
 
)

Definition at line 3485 of file pugixml.cpp.

template<typename D , typename T >
PUGI__FN size_t convert_buffer_output_generic ( typename T::value_type  dest,
const char_t *  data,
size_t  length,
,
,
bool  opt_swap 
)

Definition at line 3494 of file pugixml.cpp.

PUGI__FN bool convert_number_to_boolean ( double  value)

Definition at line 7883 of file pugixml.cpp.

PUGI__FN void convert_number_to_mantissa_exponent ( double  value,
char *  buffer,
size_t  buffer_size,
char **  out_mantissa,
int *  out_exponent 
)

Definition at line 7911 of file pugixml.cpp.

Definition at line 7942 of file pugixml.cpp.

PUGI__FN const char_t* convert_number_to_string_special ( double  value)

Definition at line 7851 of file pugixml.cpp.

PUGI__FN char* convert_path_heap ( const wchar_t *  str)

Definition at line 4849 of file pugixml.cpp.

PUGI__FN double convert_string_to_number ( const char_t *  string)

Definition at line 8039 of file pugixml.cpp.

PUGI__FN bool convert_string_to_number_scratch ( char_t(&)  buffer[32],
const char_t *  begin,
const char_t *  end,
double *  out_result 
)

Definition at line 8052 of file pugixml.cpp.

template<typename I >
void copy_backwards ( begin,
end,
target 
)

Definition at line 7068 of file pugixml.cpp.

PUGI__FN bool copy_xpath_variable ( xpath_variable *  lhs,
const xpath_variable *  rhs 
)

Definition at line 8421 of file pugixml.cpp.

PUGI__NS_BEGIN PUGI__FN void* default_allocate ( size_t  size)

Definition at line 152 of file pugixml.cpp.

PUGI__FN void default_deallocate ( void *  ptr)

Definition at line 157 of file pugixml.cpp.

template<typename T >
PUGI__FN void delete_xpath_variable ( T *  var)

Definition at line 8390 of file pugixml.cpp.

PUGI__FN void delete_xpath_variable ( xpath_value_type  type,
xpath_variable *  var 
)

Definition at line 8396 of file pugixml.cpp.

void destroy_attribute ( xml_attribute_struct *  a,
xml_allocator alloc 
) [inline]

Definition at line 1172 of file pugixml.cpp.

void destroy_node ( xml_node_struct *  n,
xml_allocator alloc 
) [inline]

Definition at line 1183 of file pugixml.cpp.

PUGI__FN const void* document_buffer_order ( const xpath_node &  xnode)

Definition at line 7731 of file pugixml.cpp.

PUGI__NS_END PUGI__NS_BEGIN uint16_t endian_swap ( uint16_t  value) [inline]

Definition at line 1419 of file pugixml.cpp.

uint32_t endian_swap ( uint32_t  value) [inline]

Definition at line 1424 of file pugixml.cpp.

PUGI__FN impl::xpath_ast_node* evaluate_node_set_prepare ( xpath_query_impl impl)

Definition at line 11618 of file pugixml.cpp.

PUGI__FN xpath_string evaluate_string_impl ( xpath_query_impl impl,
const xpath_node &  n,
xpath_stack_data sd 
)

Definition at line 11605 of file pugixml.cpp.

PUGI__FN const char_t* find_char ( const char_t *  s,
char_t  c 
)

Definition at line 7582 of file pugixml.cpp.

PUGI__FN const char_t* find_substring ( const char_t *  s,
const char_t *  p 
)

Definition at line 7591 of file pugixml.cpp.

PUGI__FN double gen_nan ( )

Definition at line 7825 of file pugixml.cpp.

template<typename Object >
xml_allocator& get_allocator ( const Object *  object) [inline]

Definition at line 1137 of file pugixml.cpp.

PUGI__FN xml_encoding get_buffer_encoding ( xml_encoding  encoding,
const void *  contents,
size_t  size 
)

Definition at line 1923 of file pugixml.cpp.

template<typename Object >
xml_document_struct& get_document ( const Object *  object) [inline]

Definition at line 1144 of file pugixml.cpp.

PUGI__FN xml_parse_status get_file_size ( FILE *  file,
size_t &  out_result 
)

Definition at line 4600 of file pugixml.cpp.

PUGI__FN size_t get_latin1_7bit_prefix_length ( const uint8_t *  data,
size_t  size 
)

Definition at line 2107 of file pugixml.cpp.

PUGI__FN bool get_mutable_buffer ( char_t *&  out_buffer,
size_t &  out_length,
const void *  contents,
size_t  size,
bool  is_mutable 
)

Definition at line 1948 of file pugixml.cpp.

Definition at line 2785 of file pugixml.cpp.

PUGI__FN strconv_pcdata_t get_strconv_pcdata ( unsigned int  optmask)

Definition at line 2616 of file pugixml.cpp.

PUGI__FN size_t get_valid_length ( const char_t *  data,
size_t  length 
)

Definition at line 3556 of file pugixml.cpp.

PUGI__FN bool get_value_bool ( const char_t *  value)

Definition at line 4442 of file pugixml.cpp.

PUGI__FN double get_value_double ( const char_t *  value)

Definition at line 4424 of file pugixml.cpp.

PUGI__FN float get_value_float ( const char_t *  value)

Definition at line 4433 of file pugixml.cpp.

PUGI__FN int get_value_int ( const char_t *  value)

Definition at line 4414 of file pugixml.cpp.

PUGI__FN unsigned int get_value_uint ( const char_t *  value)

Definition at line 4419 of file pugixml.cpp.

PUGI__FN bool get_variable_scratch ( char_t(&)  buffer[32],
xpath_variable_set *  set,
const char_t *  begin,
const char_t *  end,
xpath_variable **  out_result 
)

Definition at line 8443 of file pugixml.cpp.

PUGI__FN xml_encoding get_wchar_encoding ( )

Definition at line 1889 of file pugixml.cpp.

PUGI__FN xml_encoding get_write_encoding ( xml_encoding  encoding)

Definition at line 3467 of file pugixml.cpp.

Definition at line 3458 of file pugixml.cpp.

PUGI__FN xml_encoding guess_buffer_encoding ( uint8_t  d0,
uint8_t  d1,
uint8_t  d2,
uint8_t  d3 
)

Definition at line 1899 of file pugixml.cpp.

PUGI__FN bool has_declaration ( xml_node_struct *  node)

Definition at line 4180 of file pugixml.cpp.

PUGI__FN unsigned int hash_string ( const char_t *  str)

Definition at line 8334 of file pugixml.cpp.

void insert_attribute_after ( xml_attribute_struct *  attr,
xml_attribute_struct *  place,
xml_node_struct *  node 
) [inline]

Definition at line 1339 of file pugixml.cpp.

void insert_attribute_before ( xml_attribute_struct *  attr,
xml_attribute_struct *  place,
xml_node_struct *  node 
) [inline]

Definition at line 1351 of file pugixml.cpp.

void insert_node_after ( xml_node_struct *  child,
xml_node_struct *  node 
) [inline]

Definition at line 1251 of file pugixml.cpp.

void insert_node_before ( xml_node_struct *  child,
xml_node_struct *  node 
) [inline]

Definition at line 1268 of file pugixml.cpp.

template<typename I , typename Pred , typename T >
void insertion_sort ( begin,
end,
const Pred &  pred,
T *   
)

Definition at line 7073 of file pugixml.cpp.

template<typename U >
PUGI__FN char_t* integer_to_string ( char_t *  begin,
char_t *  end,
value,
bool  negative 
)

Definition at line 4464 of file pugixml.cpp.

PUGI__FN bool is_attribute_of ( xml_attribute_struct *  attr,
xml_node_struct *  node 
)

Definition at line 4193 of file pugixml.cpp.

Definition at line 1882 of file pugixml.cpp.

PUGI__FN bool is_nan ( double  value)

Definition at line 7838 of file pugixml.cpp.

bool is_text_node ( xml_node_struct *  node) [inline]

Definition at line 4331 of file pugixml.cpp.

bool is_xpath_attribute ( const char_t *  name) [inline]

Definition at line 8282 of file pugixml.cpp.

PUGI__FN xml_parse_result load_buffer_impl ( xml_document_struct doc,
xml_node_struct *  root,
void *  contents,
size_t  size,
unsigned int  options,
xml_encoding  encoding,
bool  is_mutable,
bool  own,
char_t **  out_buffer 
)

Definition at line 4567 of file pugixml.cpp.

PUGI__FN xml_parse_result load_file_impl ( xml_document_struct doc,
FILE *  file,
unsigned int  options,
xml_encoding  encoding,
char_t **  out_buffer 
)

Definition at line 4664 of file pugixml.cpp.

template<typename T >
PUGI__FN xml_parse_status load_stream_data_noseek ( std::basic_istream< T > &  stream,
void **  out_buffer,
size_t *  out_size 
)

Definition at line 4727 of file pugixml.cpp.

template<typename T >
PUGI__FN xml_parse_status load_stream_data_seek ( std::basic_istream< T > &  stream,
void **  out_buffer,
size_t *  out_size 
)

Definition at line 4781 of file pugixml.cpp.

template<typename T >
PUGI__FN xml_parse_result load_stream_impl ( xml_document_struct doc,
std::basic_istream< T > &  stream,
unsigned int  options,
xml_encoding  encoding,
char_t **  out_buffer 
)

Definition at line 4817 of file pugixml.cpp.

PUGI__FN const char_t* local_name ( const xpath_node &  node)

Definition at line 8093 of file pugixml.cpp.

xml_parse_result make_parse_result ( xml_parse_status  status,
ptrdiff_t  offset = 0 
) [inline]

Definition at line 2811 of file pugixml.cpp.

template<typename I , typename Pred >
void median ( first,
middle,
last,
const Pred &  pred 
)

Definition at line 7165 of file pugixml.cpp.

template<typename I , typename Pred >
void median3 ( first,
middle,
last,
const Pred &  pred 
)

Definition at line 7158 of file pugixml.cpp.

template<typename I , typename Pred >
I min_element ( begin,
end,
const Pred &  pred 
)

Definition at line 7029 of file pugixml.cpp.

PUGI__FN const char_t* namespace_uri ( xml_node  node)

Definition at line 8124 of file pugixml.cpp.

PUGI__FN const char_t* namespace_uri ( xml_attribute  attr,
xml_node  parent 
)

Definition at line 8142 of file pugixml.cpp.

PUGI__FN const char_t* namespace_uri ( const xpath_node &  node)

Definition at line 8163 of file pugixml.cpp.

template<typename T >
PUGI__FN T* new_xpath_variable ( const char_t *  name)

Definition at line 8353 of file pugixml.cpp.

PUGI__FN xpath_variable* new_xpath_variable ( xpath_value_type  type,
const char_t *  name 
)

Definition at line 8369 of file pugixml.cpp.

PUGI__FN void node_copy_attribute ( xml_attribute_struct *  da,
xml_attribute_struct *  sa 
)

Definition at line 4322 of file pugixml.cpp.

PUGI__FN void node_copy_contents ( xml_node_struct *  dn,
xml_node_struct *  sn,
xml_allocator shared_alloc 
)

Definition at line 4260 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN void node_copy_string ( String &  dest,
Header &  header,
uintptr_t  header_mask,
char_t *  source,
Header &  source_header,
xml_allocator alloc 
)

Definition at line 4241 of file pugixml.cpp.

PUGI__FN void node_copy_tree ( xml_node_struct *  dn,
xml_node_struct *  sn 
)

Definition at line 4277 of file pugixml.cpp.

PUGI__FN bool node_is_ancestor ( xml_node_struct *  parent,
xml_node_struct *  node 
)

Definition at line 7724 of file pugixml.cpp.

PUGI__FN bool node_is_before ( xml_node_struct *  ln,
xml_node_struct *  rn 
)

Definition at line 7681 of file pugixml.cpp.

PUGI__FN bool node_is_before_sibling ( xml_node_struct *  ln,
xml_node_struct *  rn 
)

Definition at line 7657 of file pugixml.cpp.

PUGI__FN void node_output ( xml_buffered_writer writer,
xml_node_struct *  root,
const char_t *  indent,
unsigned int  flags,
unsigned int  depth 
)

Definition at line 4091 of file pugixml.cpp.

PUGI__FN void node_output_attributes ( xml_buffered_writer writer,
xml_node_struct *  node,
const char_t *  indent,
size_t  indent_length,
unsigned int  flags,
unsigned int  depth 
)

Definition at line 3967 of file pugixml.cpp.

PUGI__FN void node_output_comment ( xml_buffered_writer writer,
const char_t *  s 
)

Definition at line 3921 of file pugixml.cpp.

PUGI__FN void node_output_end ( xml_buffered_writer writer,
xml_node_struct *  node 
)

Definition at line 4019 of file pugixml.cpp.

PUGI__FN void node_output_pi_value ( xml_buffered_writer writer,
const char_t *  s 
)

Definition at line 3946 of file pugixml.cpp.

PUGI__FN void node_output_simple ( xml_buffered_writer writer,
xml_node_struct *  node,
unsigned int  flags 
)

Definition at line 4029 of file pugixml.cpp.

PUGI__FN bool node_output_start ( xml_buffered_writer writer,
xml_node_struct *  node,
const char_t *  indent,
size_t  indent_length,
unsigned int  flags,
unsigned int  depth 
)

Definition at line 3994 of file pugixml.cpp.

PUGI__FN char_t* normalize_space ( char_t *  buffer)

Definition at line 8168 of file pugixml.cpp.

PUGI__FN FILE* open_file_wide ( const wchar_t *  path,
const wchar_t *  mode 
)

Definition at line 4870 of file pugixml.cpp.

template<typename I , typename Pred >
void partition ( begin,
middle,
end,
const Pred &  pred,
I *  out_eqbeg,
I *  out_eqend 
)

Definition at line 7105 of file pugixml.cpp.

void prepend_attribute ( xml_attribute_struct *  attr,
xml_node_struct *  node 
) [inline]

Definition at line 1323 of file pugixml.cpp.

void prepend_node ( xml_node_struct *  child,
xml_node_struct *  node 
) [inline]

Definition at line 1233 of file pugixml.cpp.

PUGI__FN const char_t* qualified_name ( const xpath_node &  node)

Definition at line 8088 of file pugixml.cpp.

void remove_attribute ( xml_attribute_struct *  attr,
xml_node_struct *  node 
) [inline]

Definition at line 1363 of file pugixml.cpp.

void remove_node ( xml_node_struct *  node) [inline]

Definition at line 1285 of file pugixml.cpp.

template<typename I >
void reverse ( begin,
end 
)

Definition at line 7040 of file pugixml.cpp.

PUGI__FN double round_nearest ( double  value)

Definition at line 8076 of file pugixml.cpp.

PUGI__FN double round_nearest_nzero ( double  value)

Definition at line 8081 of file pugixml.cpp.

PUGI__FN bool save_file_impl ( const xml_document &  doc,
FILE *  file,
const char_t *  indent,
unsigned int  flags,
xml_encoding  encoding 
)

Definition at line 4890 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool set_value_ascii ( String &  dest,
Header &  header,
uintptr_t  header_mask,
char *  buf 
)

Definition at line 4486 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool set_value_convert ( String &  dest,
Header &  header,
uintptr_t  header_mask,
int  value 
)

Definition at line 4502 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool set_value_convert ( String &  dest,
Header &  header,
uintptr_t  header_mask,
unsigned int  value 
)

Definition at line 4512 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool set_value_convert ( String &  dest,
Header &  header,
uintptr_t  header_mask,
float  value 
)

Definition at line 4522 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool set_value_convert ( String &  dest,
Header &  header,
uintptr_t  header_mask,
double  value 
)

Definition at line 4531 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool set_value_convert ( String &  dest,
Header &  header,
uintptr_t  header_mask,
bool  value 
)

Definition at line 4540 of file pugixml.cpp.

template<typename I , typename Pred >
void sort ( begin,
end,
const Pred &  pred 
)

Definition at line 7184 of file pugixml.cpp.

PUGI__NS_END PUGI__NS_BEGIN PUGI__FN bool starts_with ( const char_t *  string,
const char_t *  pattern 
)

Definition at line 7571 of file pugixml.cpp.

PUGI__FN char_t* strconv_cdata ( char_t *  s,
char_t  endch 
)

Definition at line 2535 of file pugixml.cpp.

PUGI__FN char_t* strconv_comment ( char_t *  s,
char_t  endch 
)

Definition at line 2507 of file pugixml.cpp.

PUGI__FN char_t* strconv_escape ( char_t *  s,
gap g 
)

Definition at line 2354 of file pugixml.cpp.

template<typename String , typename Header >
PUGI__FN bool strcpy_insitu ( String &  dest,
Header &  header,
uintptr_t  header_mask,
const char_t *  source,
size_t  source_length 
)

Definition at line 2264 of file pugixml.cpp.

template<typename Header >
bool strcpy_insitu_allow ( size_t  length,
const Header &  header,
uintptr_t  header_mask,
char_t *  target 
) [inline]

Definition at line 2247 of file pugixml.cpp.

PUGI__FN bool strequal ( const char_t *  src,
const char_t *  dst 
)

Definition at line 192 of file pugixml.cpp.

PUGI__FN bool strequalrange ( const char_t *  lhs,
const char_t *  rhs,
size_t  count 
)

Definition at line 204 of file pugixml.cpp.

template<typename U >
U string_to_integer ( const char_t *  value,
minneg,
maxpos 
)

Definition at line 4339 of file pugixml.cpp.

PUGI__FN xpath_string string_value ( const xpath_node &  na,
xpath_allocator alloc 
)

Definition at line 7607 of file pugixml.cpp.

PUGI__NS_END PUGI__NS_BEGIN PUGI__FN size_t strlength ( const char_t *  s)

Definition at line 180 of file pugixml.cpp.

PUGI__FN size_t strlength_wide ( const wchar_t *  s)

Definition at line 214 of file pugixml.cpp.

template<typename T >
void swap ( T &  lhs,
T &  rhs 
)

Definition at line 7022 of file pugixml.cpp.

PUGI__FN void text_output ( xml_buffered_writer writer,
const char_t *  s,
chartypex_t  type,
unsigned int  flags 
)

Definition at line 3851 of file pugixml.cpp.

PUGI__FN void text_output_cdata ( xml_buffered_writer writer,
const char_t *  s 
)

Definition at line 3859 of file pugixml.cpp.

PUGI__FN void text_output_escaped ( xml_buffered_writer writer,
const char_t *  s,
chartypex_t  type 
)

Definition at line 3810 of file pugixml.cpp.

PUGI__FN void text_output_indent ( xml_buffered_writer writer,
const char_t *  indent,
size_t  indent_length,
unsigned int  depth 
)

Definition at line 3881 of file pugixml.cpp.

PUGI__FN char_t tolower_ascii ( char_t  ch)

Definition at line 7602 of file pugixml.cpp.

PUGI__FN char_t* translate ( char_t *  buffer,
const char_t *  from,
const char_t *  to,
size_t  to_length 
)

Definition at line 8196 of file pugixml.cpp.

PUGI__FN char_t* translate_table ( char_t *  buffer,
const unsigned char *  table 
)

Definition at line 8252 of file pugixml.cpp.

PUGI__FN unsigned char* translate_table_generate ( xpath_allocator alloc,
const char_t *  from,
const char_t *  to 
)

Definition at line 8218 of file pugixml.cpp.

PUGI__FN void truncate_zeros ( char *  begin,
char *  end 
)

Definition at line 7888 of file pugixml.cpp.

template<typename I >
I unique ( begin,
end 
)

Definition at line 7045 of file pugixml.cpp.

PUGI__FN xpath_node xpath_first ( const xpath_node *  begin,
const xpath_node *  end,
xpath_node_set::type_t  type 
)

Definition at line 8509 of file pugixml.cpp.

PUGI__NS_END PUGI__NS_BEGIN PUGI__FN xpath_node_set::type_t xpath_get_order ( const xpath_node *  begin,
const xpath_node *  end 
)

Definition at line 8470 of file pugixml.cpp.

PUGI__FN xpath_node_set::type_t xpath_sort ( xpath_node *  begin,
xpath_node *  end,
xpath_node_set::type_t  type,
bool  rev 
)

Definition at line 8486 of file pugixml.cpp.

PUGI__FN size_t zero_terminate_buffer ( void *  buffer,
size_t  size,
xml_encoding  encoding 
)

Definition at line 4640 of file pugixml.cpp.


Variable Documentation

const unsigned char chartype_table[256] [static]
Initial value:
        {
                55,  0,   0,   0,   0,   0,   0,   0,      0,   12,  12,  0,   0,   63,  0,   0,   
                0,   0,   0,   0,   0,   0,   0,   0,      0,   0,   0,   0,   0,   0,   0,   0,   
                8,   0,   6,   0,   0,   0,   7,   6,      0,   0,   0,   0,   0,   96,  64,  0,   
                64,  64,  64,  64,  64,  64,  64,  64,     64,  64,  192, 0,   1,   0,   48,  0,   
                0,   192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192, 
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 0,   0,   16,  0,   192, 
                0,   192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192, 
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 0, 0, 0, 0, 0,           

                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192, 
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192,
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192,
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192,
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192,
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192,
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192,
                192, 192, 192, 192, 192, 192, 192, 192,    192, 192, 192, 192, 192, 192, 192, 192
        }

Definition at line 1821 of file pugixml.cpp.

const unsigned char chartypex_table[256] [static]
Initial value:
        {
                3,  3,  3,  3,  3,  3,  3,  3,     3,  0,  2,  3,  3,  2,  3,  3,     
                3,  3,  3,  3,  3,  3,  3,  3,     3,  3,  3,  3,  3,  3,  3,  3,     
                0,  0,  2,  0,  0,  0,  3,  0,     0,  0,  0,  0,  0, 16, 16,  0,     
                24, 24, 24, 24, 24, 24, 24, 24,    24, 24, 0,  0,  3,  0,  3,  0,     

                0,  20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,    
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 0,  0,  0,  0,  20,    
                0,  20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,    
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 0,  0,  0,  0,  0,     

                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,    
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20,
                20, 20, 20, 20, 20, 20, 20, 20,    20, 20, 20, 20, 20, 20, 20, 20
        }

Definition at line 1851 of file pugixml.cpp.

const xpath_node_set dummy_node_set [static]

Definition at line 8332 of file pugixml.cpp.

const uintptr_t xml_memory_block_alignment = sizeof(void*) [static]

Definition at line 410 of file pugixml.cpp.

const uintptr_t xml_memory_page_alignment = 64 [static]

Definition at line 412 of file pugixml.cpp.

const uintptr_t xml_memory_page_contents_shared_mask = 32 [static]

Definition at line 417 of file pugixml.cpp.

const uintptr_t xml_memory_page_name_allocated_mask = 16 [static]

Definition at line 418 of file pugixml.cpp.

Definition at line 423 of file pugixml.cpp.

const uintptr_t xml_memory_page_pointer_mask = ~(xml_memory_page_alignment - 1) [static]

Definition at line 413 of file pugixml.cpp.

PUGI__NS_END static PUGI__NS_BEGIN const size_t xml_memory_page_size [static]
Initial value:



                32768

Definition at line 397 of file pugixml.cpp.

const uintptr_t xml_memory_page_type_mask = 7 [static]

Definition at line 420 of file pugixml.cpp.

const uintptr_t xml_memory_page_value_allocated_mask = 8 [static]

Definition at line 419 of file pugixml.cpp.

Definition at line 424 of file pugixml.cpp.

const uintptr_t xpath_memory_block_alignment = sizeof(double) > sizeof(void*) ? sizeof(double) : sizeof(void*) [static]

Definition at line 7225 of file pugixml.cpp.

PUGI__NS_END static PUGI__NS_BEGIN const size_t xpath_memory_page_size [static]
Initial value:



                4096

Definition at line 7217 of file pugixml.cpp.



pugixml
Author(s): Jose Luis Sanchez-Lopez
autogenerated on Thu Jun 6 2019 21:00:00