CARLA
 
载入中...
搜索中...
未找到
| 命名空间 | 宏定义 | 类型定义 | 枚举 | 函数 | 变量
pugixml.cpp 文件参考
#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>
+ pugixml.cpp 的引用(Include)关系图:

浏览源代码.

struct  auto_deleter< T >
 
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 >
 
struct  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
 

命名空间

namespace  pugi
 

宏定义

#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__GETHEADER_IMPL(object, page, flags)   (((reinterpret_cast<char*>(object) - reinterpret_cast<char*>(page)) << 8) | (flags))
 
#define PUGI__GETPAGE(n)   PUGI__GETPAGE_IMPL((n)->header)
 
#define PUGI__GETPAGE_IMPL(header)   static_cast<impl::xml_memory_page*>(const_cast<void*>(static_cast<const void*>(reinterpret_cast<const char*>(&header) - (header >> 8))))
 
#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)
 
#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__SCANCHAR(ch)   { if (offset >= size || data[offset] != ch) return false; offset++; }
 
#define PUGI__SCANCHARTYPE(ct)   { while (offset < size && PUGI__IS_CHARTYPE(data[offset], ct)) offset++; }
 
#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__SNPRINTF   sprintf
 
#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 PUGI__UNSIGNED_OVERFLOW
 
#define SOURCE_PUGIXML_CPP
 

类型定义

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
 

枚举

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 }
 

函数

PUGI__NS_END PUGI__NS_BEGIN xml_attribute_struct * allocate_attribute (xml_allocator &alloc)
 
xml_node_structallocate_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_structappend_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)
 
PUGI__FN std::string PUGIXML_FUNCTION pugi::as_utf8 (const std::basic_string< wchar_t > &str)
 
PUGI__FN std::string PUGIXML_FUNCTION pugi::as_utf8 (const 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)
 
PUGI__FN std::basic_string< 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 void close_file (FILE *file)
 
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)[32], 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)
 
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 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)
 
PUGI__FN allocation_function PUGIXML_FUNCTION pugi::get_memory_allocation_function ()
 
PUGI__FN 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 (const uint8_t *data, size_t size)
 
PUGI__FN bool has_declaration (xml_node_struct *node)
 
PUGI__FN PUGI__UNSIGNED_OVERFLOW 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 T , typename Pred >
void insertion_sort (T *begin, T *end, const Pred &pred)
 
template<typename U >
PUGI__FN PUGI__UNSIGNED_OVERFLOW 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 >
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 (const xpath_node &node)
 
PUGI__FN const char_t * namespace_uri (xml_attribute attr, xml_node parent)
 
PUGI__FN const char_t * namespace_uri (xml_node node)
 
template<typename T >
PUGI__FN T * new_xpath_variable (const char_t *name)
 
PUGI__FN xpath_variablenew_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)
 
PUGI__FN bool parse_declaration_encoding (const uint8_t *data, size_t size, const uint8_t *&out_encoding, size_t &out_length)
 
template<typename T , typename Pred >
void partition3 (T *begin, T *end, T pivot, const Pred &pred, T **out_eqbeg, T **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)
 
PUGI__FN 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_bool (String &dest, Header &header, uintptr_t header_mask, bool 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, float value)
 
template<typename U , typename String , typename Header >
PUGI__FN bool set_value_integer (String &dest, Header &header, uintptr_t header_mask, U value, bool negative)
 
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 >
PUGI__FN PUGI__UNSIGNED_OVERFLOWstring_to_integer (const char_t *value, U minv, U maxv)
 
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)
 

变量

static const unsigned char chartype_table [256]
 
static const unsigned char chartypex_table [256]
 
static const xpath_node_set dummy_node_set
 
PUGI__NS_END static PUGI__NS_BEGIN const uintptr_t xml_memory_block_alignment = sizeof(void*)
 
static const uintptr_t xml_memory_page_contents_shared_mask = 64
 
static const uintptr_t xml_memory_page_name_allocated_mask = 32
 
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 size_t xml_memory_page_size
 
static const uintptr_t xml_memory_page_type_mask = 15
 
static const uintptr_t xml_memory_page_value_allocated_mask = 16
 
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
 

宏定义说明

◆ PUGI__CHECK_ERROR

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

在文件 pugixml.cpp2603 行定义.

被这些函数引用 xml_parser::parse_exclamation() , 以及 xml_parser::parse_question().

◆ PUGI__DMC_VOLATILE

#define PUGI__DMC_VOLATILE

在文件 pugixml.cpp112 行定义.

被这些函数引用 translate().

◆ PUGI__ENDSEG

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

在文件 pugixml.cpp2601 行定义.

被这些函数引用 xml_parser::parse_question() , 以及 xml_parser::parse_tree().

◆ PUGI__ENDSWITH

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

◆ PUGI__FN

#define PUGI__FN

在文件 pugixml.cpp168 行定义.

◆ PUGI__FN_NO_INLINE

#define PUGI__FN_NO_INLINE   PUGI__NO_INLINE

在文件 pugixml.cpp169 行定义.

◆ PUGI__GETHEADER_IMPL

#define PUGI__GETHEADER_IMPL ( object,
page,
flags )   (((reinterpret_cast<char*>(object) - reinterpret_cast<char*>(page)) << 8) | (flags))

◆ PUGI__GETPAGE

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

◆ PUGI__GETPAGE_IMPL

#define PUGI__GETPAGE_IMPL ( header)    static_cast<impl::xml_memory_page*>(const_cast<void*>(static_cast<const void*>(reinterpret_cast<const char*>(&header) - (header >> 8))))

在文件 pugixml.cpp456 行定义.

被这些函数引用 strcpy_insitu().

◆ PUGI__IS_CHARTYPE

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

◆ PUGI__IS_CHARTYPE_IMPL

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

在文件 pugixml.cpp1901 行定义.

◆ PUGI__IS_CHARTYPEX

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

在文件 pugixml.cpp1905 行定义.

被这些函数引用 check_string_to_number_format(), xpath_lexer::next() , 以及 text_output_escaped().

◆ PUGI__NO_INLINE

#define PUGI__NO_INLINE

在文件 pugixml.cpp95 行定义.

◆ PUGI__NODETYPE

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

◆ PUGI__NS_BEGIN

#define PUGI__NS_BEGIN   namespace pugi { namespace impl { namespace {

在文件 pugixml.cpp165 行定义.

◆ PUGI__NS_END

#define PUGI__NS_END   } } }

在文件 pugixml.cpp166 行定义.

◆ PUGI__OPTSET

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

◆ PUGI__POPNODE

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

在文件 pugixml.cpp2597 行定义.

被这些函数引用 xml_parser::parse_question() , 以及 xml_parser::parse_tree().

◆ PUGI__PUSHNODE

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

◆ PUGI__SCANCHAR

#define PUGI__SCANCHAR ( ch)    { if (offset >= size || data[offset] != ch) return false; offset++; }

◆ PUGI__SCANCHARTYPE

#define PUGI__SCANCHARTYPE ( ct)    { while (offset < size && PUGI__IS_CHARTYPE(data[offset], ct)) offset++; }

◆ PUGI__SCANFOR

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

◆ PUGI__SCANWHILE

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

在文件 pugixml.cpp2599 行定义.

被这些函数引用 xml_parser::parse_question().

◆ PUGI__SCANWHILE_UNROLL

#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; } }

◆ PUGI__SKIPWS

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

在文件 pugixml.cpp2594 行定义.

被这些函数引用 xml_parser::parse_question() , 以及 xml_parser::parse_tree().

◆ PUGI__SNPRINTF

#define PUGI__SNPRINTF   sprintf

在文件 pugixml.cpp151 行定义.

被这些函数引用 convert_number_to_mantissa_exponent(), set_value_convert() , 以及 set_value_convert().

◆ PUGI__STATIC_ASSERT

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

◆ PUGI__THROW_ERROR

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

◆ PUGI__UNLIKELY

#define PUGI__UNLIKELY ( cond)    (cond)

在文件 pugixml.cpp102 行定义.

被这些函数引用 xml_allocator::allocate_memory().

◆ PUGI__UNSIGNED_OVERFLOW

#define PUGI__UNSIGNED_OVERFLOW

在文件 pugixml.cpp123 行定义.

◆ SOURCE_PUGIXML_CPP

#define SOURCE_PUGIXML_CPP

pugixml parser - version 1.9

Copyright (C) 2006-2018, by Arseny Kapoulkine (arsen.nosp@m.y.ka.nosp@m.poulk.nosp@m.ine@.nosp@m.gmail.nosp@m..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 (krist.nosp@m.en@t.nosp@m.ima.n.nosp@m.et)

在文件 pugixml.cpp15 行定义.

类型定义说明

◆ strconv_attribute_t

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

在文件 pugixml.cpp2732 行定义.

◆ strconv_pcdata_t

typedef char_t *(* strconv_pcdata_t) (char_t *)

在文件 pugixml.cpp2661 行定义.

◆ wchar_counter

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

在文件 pugixml.cpp1809 行定义.

◆ wchar_writer

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

在文件 pugixml.cpp1810 行定义.

◆ xml_memory

在文件 pugixml.cpp212 行定义.

枚举类型说明

◆ ast_type_t

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 

在文件 pugixml.cpp9263 行定义.

◆ axis_t

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 

在文件 pugixml.cpp9328 行定义.

◆ chartype_t

enum chartype_t
枚举值
ct_parse_pcdata 
ct_parse_attr 
ct_parse_attr_ws 
ct_space 
ct_parse_cdata 
ct_parse_comment 
ct_symbol 
ct_start_symbol 

在文件 pugixml.cpp1834 行定义.

◆ chartypex_t

枚举值
ctx_special_pcdata 
ctx_special_attr 
ctx_start_symbol 
ctx_digit 
ctx_symbol 

在文件 pugixml.cpp1867 行定义.

◆ indent_flags_t

枚举值
indent_newline 
indent_indent 

在文件 pugixml.cpp4224 行定义.

◆ lexeme_t

enum lexeme_t
枚举值
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 

在文件 pugixml.cpp8909 行定义.

◆ nodeset_eval_t

枚举值
nodeset_eval_all 
nodeset_eval_any 
nodeset_eval_first 

在文件 pugixml.cpp9366 行定义.

◆ nodetest_t

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 

在文件 pugixml.cpp9345 行定义.

◆ predicate_t

枚举值
predicate_default 
predicate_posinv 
predicate_constant 
predicate_constant_one 

在文件 pugixml.cpp9358 行定义.

函数说明

◆ allocate_attribute()

PUGI__NS_END PUGI__NS_BEGIN xml_attribute_struct * allocate_attribute ( xml_allocator & alloc)
inline

在文件 pugixml.cpp1179 行定义.

引用了 xml_allocator::allocate_object().

被这些函数引用 append_new_attribute().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ allocate_node()

xml_node_struct * allocate_node ( xml_allocator & alloc,
xml_node_type type )
inline

在文件 pugixml.cpp1188 行定义.

引用了 xml_allocator::allocate_object().

被这些函数引用 append_new_node().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ allow_insert_attribute()

PUGI__FN bool allow_insert_attribute ( xml_node_type parent)

在文件 pugixml.cpp4345 行定义.

◆ allow_insert_child()

PUGI__FN bool allow_insert_child ( xml_node_type parent,
xml_node_type child )

在文件 pugixml.cpp4350 行定义.

被这些函数引用 allow_move().

+ 这是这个函数的调用关系图:

◆ allow_move()

PUGI__FN bool allow_move ( xml_node parent,
xml_node child )

在文件 pugixml.cpp4359 行定义.

引用了 allow_insert_child().

+ 函数调用图:

◆ append_attribute()

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

在文件 pugixml.cpp1329 行定义.

被这些函数引用 append_new_attribute().

+ 这是这个函数的调用关系图:

◆ append_new_attribute()

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

在文件 pugixml.cpp1416 行定义.

引用了 allocate_attribute(), append_attribute() , 以及 xml_allocator::reserve().

被这些函数引用 node_copy_contents() , 以及 xml_parser::parse_tree().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ append_new_node()

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

在文件 pugixml.cpp1404 行定义.

引用了 allocate_node(), append_node() , 以及 xml_allocator::reserve().

被这些函数引用 node_copy_tree().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ append_node()

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

在文件 pugixml.cpp1237 行定义.

被这些函数引用 append_new_node().

+ 这是这个函数的调用关系图:

◆ as_utf8_begin()

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

在文件 pugixml.cpp2286 行定义.

引用了 wchar_decoder::process().

被这些函数引用 as_utf8_impl() , 以及 convert_path_heap().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ as_utf8_end()

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

在文件 pugixml.cpp2292 行定义.

引用了 wchar_decoder::process().

被这些函数引用 as_utf8_impl() , 以及 convert_path_heap().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ as_utf8_impl()

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

在文件 pugixml.cpp2304 行定义.

引用了 as_utf8_begin() , 以及 as_utf8_end().

+ 函数调用图:

◆ as_wide_impl()

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

在文件 pugixml.cpp2319 行定义.

引用了 utf8_decoder::process().

+ 函数调用图:

◆ check_string_to_number_format()

PUGI__FN bool check_string_to_number_format ( const char_t * string)

在文件 pugixml.cpp8255 行定义.

引用了 ct_space, ctx_digit, PUGI__IS_CHARTYPE , 以及 PUGI__IS_CHARTYPEX.

被这些函数引用 convert_string_to_number().

+ 这是这个函数的调用关系图:

◆ close_file()

PUGI__FN void close_file ( FILE * file)

在文件 pugixml.cpp4811 行定义.

◆ convert_buffer()

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 )

在文件 pugixml.cpp2251 行定义.

引用了 convert_buffer_generic(), convert_buffer_latin1(), get_mutable_buffer() , 以及 is_little_endian().

+ 函数调用图:

◆ convert_buffer_generic()

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

在文件 pugixml.cpp2180 行定义.

引用了 xml_memory_management_function_storage< T >::allocate.

被这些函数引用 convert_buffer().

+ 这是这个函数的调用关系图:

◆ convert_buffer_latin1()

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

在文件 pugixml.cpp2214 行定义.

引用了 xml_memory_management_function_storage< T >::allocate, get_latin1_7bit_prefix_length(), get_mutable_buffer() , 以及 latin1_decoder::process().

被这些函数引用 convert_buffer().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_buffer_output()

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 )

在文件 pugixml.cpp3674 行定义.

引用了 convert_buffer_output_generic() , 以及 is_little_endian().

被这些函数引用 xml_buffered_writer::flush().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_buffer_output_generic() [1/2]

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  )

在文件 pugixml.cpp3587 行定义.

引用了 PUGI__STATIC_ASSERT.

被这些函数引用 convert_buffer_output().

+ 这是这个函数的调用关系图:

◆ convert_buffer_output_generic() [2/2]

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 )

在文件 pugixml.cpp3596 行定义.

引用了 endian_swap() , 以及 PUGI__STATIC_ASSERT.

+ 函数调用图:

◆ convert_number_to_boolean()

PUGI__FN bool convert_number_to_boolean ( double value)

在文件 pugixml.cpp8131 行定义.

引用了 is_nan().

被这些函数引用 xpath_ast_node::eval_boolean().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_number_to_mantissa_exponent()

PUGI__FN void convert_number_to_mantissa_exponent ( double value,
char(&) buffer[32],
char ** out_mantissa,
int * out_exponent )

在文件 pugixml.cpp8159 行定义.

引用了 PUGI__SNPRINTF , 以及 truncate_zeros().

被这些函数引用 convert_number_to_string().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_number_to_string()

PUGI__FN xpath_string convert_number_to_string ( double value,
xpath_allocator * alloc )

在文件 pugixml.cpp8188 行定义.

引用了 xpath_allocator::allocate(), convert_number_to_mantissa_exponent(), convert_number_to_string_special(), xpath_string::from_const() , 以及 xpath_string::from_heap_preallocated().

被这些函数引用 xpath_ast_node::eval_string().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_number_to_string_special()

PUGI__FN const char_t * convert_number_to_string_special ( double value)

在文件 pugixml.cpp8099 行定义.

引用了 PUGIXML_TEXT.

被这些函数引用 convert_number_to_string().

+ 这是这个函数的调用关系图:

◆ convert_path_heap()

PUGI__FN char * convert_path_heap ( const wchar_t * str)

在文件 pugixml.cpp4972 行定义.

引用了 xml_memory_management_function_storage< T >::allocate, as_utf8_begin(), as_utf8_end() , 以及 strlength_wide().

被这些函数引用 open_file_wide().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_string_to_number()

PUGI__FN double convert_string_to_number ( const char_t * string)

在文件 pugixml.cpp8285 行定义.

引用了 check_string_to_number_format() , 以及 gen_nan().

被这些函数引用 xpath_ast_node::compare_eq(), xpath_ast_node::compare_rel(), convert_string_to_number_scratch() , 以及 xpath_ast_node::eval_number().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ convert_string_to_number_scratch()

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

在文件 pugixml.cpp8298 行定义.

引用了 xml_memory_management_function_storage< T >::allocate, convert_string_to_number() , 以及 xml_memory_management_function_storage< T >::deallocate.

被这些函数引用 xpath_parser::parse_primary_expression().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ copy_xpath_variable()

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

在文件 pugixml.cpp8665 行定义.

◆ default_allocate()

PUGI__NS_BEGIN PUGI__FN void * default_allocate ( size_t size)

在文件 pugixml.cpp190 行定义.

◆ default_deallocate()

PUGI__FN void default_deallocate ( void * ptr)

在文件 pugixml.cpp195 行定义.

◆ delete_xpath_variable() [1/2]

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

在文件 pugixml.cpp8634 行定义.

引用了 xml_memory_management_function_storage< T >::deallocate.

被这些函数引用 delete_xpath_variable().

+ 这是这个函数的调用关系图:

◆ delete_xpath_variable() [2/2]

PUGI__FN void delete_xpath_variable ( xpath_value_type type,
xpath_variable * var )

在文件 pugixml.cpp8640 行定义.

引用了 delete_xpath_variable().

+ 函数调用图:

◆ destroy_attribute()

void destroy_attribute ( xml_attribute_struct * a,
xml_allocator & alloc )
inline

在文件 pugixml.cpp1197 行定义.

引用了 xml_allocator::deallocate_memory(), xml_allocator::deallocate_string() , 以及 PUGI__GETPAGE.

被这些函数引用 destroy_node().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ destroy_node()

void destroy_node ( xml_node_struct * n,
xml_allocator & alloc )
inline

在文件 pugixml.cpp1208 行定义.

引用了 xml_allocator::deallocate_memory(), xml_allocator::deallocate_string(), destroy_attribute(), destroy_node() , 以及 PUGI__GETPAGE.

被这些函数引用 destroy_node().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ document_buffer_order()

PUGI__FN const void * document_buffer_order ( const xpath_node & xnode)

在文件 pugixml.cpp7977 行定义.

引用了 get_document() , 以及 xml_memory_page_contents_shared_mask.

被这些函数引用 document_order_comparator::operator()().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ endian_swap() [1/2]

PUGI__NS_END PUGI__NS_BEGIN uint16_t endian_swap ( uint16_t value)
inline

在文件 pugixml.cpp1444 行定义.

被这些函数引用 convert_buffer_output_generic(), utf16_decoder< opt_swap >::process() , 以及 utf32_decoder< opt_swap >::process().

+ 这是这个函数的调用关系图:

◆ endian_swap() [2/2]

uint32_t endian_swap ( uint32_t value)
inline

在文件 pugixml.cpp1449 行定义.

◆ evaluate_node_set_prepare()

PUGI__FN impl::xpath_ast_node * evaluate_node_set_prepare ( xpath_query_impl * impl)

在文件 pugixml.cpp11914 行定义.

引用了 xpath_ast_node::rettype() , 以及 xpath_query_impl::root.

+ 函数调用图:

◆ find_char()

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

在文件 pugixml.cpp7824 行定义.

被这些函数引用 local_name(), namespace_uri_predicate::namespace_uri_predicate() , 以及 translate().

+ 这是这个函数的调用关系图:

◆ find_substring()

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

在文件 pugixml.cpp7833 行定义.

被这些函数引用 xpath_ast_node::eval_boolean() , 以及 xpath_ast_node::eval_string().

+ 这是这个函数的调用关系图:

◆ gen_nan()

PUGI__FN double gen_nan ( )

在文件 pugixml.cpp8071 行定义.

引用了 PUGI__STATIC_ASSERT.

被这些函数引用 convert_string_to_number().

+ 这是这个函数的调用关系图:

◆ get_allocator()

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

在文件 pugixml.cpp1162 行定义.

引用了 PUGI__GETPAGE.

被这些函数引用 node_copy_attribute(), node_copy_contents() , 以及 node_copy_tree().

+ 这是这个函数的调用关系图:

◆ get_buffer_encoding()

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

在文件 pugixml.cpp2026 行定义.

引用了 get_wchar_encoding(), guess_buffer_encoding() , 以及 is_little_endian().

被这些函数引用 load_file_impl() , 以及 load_stream_impl().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ get_document()

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

在文件 pugixml.cpp1169 行定义.

引用了 PUGI__GETPAGE.

被这些函数引用 document_buffer_order().

+ 这是这个函数的调用关系图:

◆ get_file_size()

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

在文件 pugixml.cpp4718 行定义.

被这些函数引用 load_file_impl().

+ 这是这个函数的调用关系图:

◆ get_latin1_7bit_prefix_length()

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

在文件 pugixml.cpp2205 行定义.

被这些函数引用 convert_buffer_latin1().

+ 这是这个函数的调用关系图:

◆ get_mutable_buffer()

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

在文件 pugixml.cpp2046 行定义.

引用了 xml_memory_management_function_storage< T >::allocate.

被这些函数引用 convert_buffer() , 以及 convert_buffer_latin1().

+ 这是这个函数的调用关系图:

◆ get_strconv_attribute()

PUGI__FN strconv_attribute_t get_strconv_attribute ( unsigned int optmask)

在文件 pugixml.cpp2883 行定义.

引用了 PUGI__STATIC_ASSERT.

被这些函数引用 xml_parser::parse_tree().

+ 这是这个函数的调用关系图:

◆ get_strconv_pcdata()

PUGI__FN strconv_pcdata_t get_strconv_pcdata ( unsigned int optmask)

在文件 pugixml.cpp2714 行定义.

引用了 PUGI__STATIC_ASSERT.

被这些函数引用 xml_parser::parse_tree().

+ 这是这个函数的调用关系图:

◆ get_valid_length()

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

在文件 pugixml.cpp3658 行定义.

被这些函数引用 xml_buffered_writer::write_direct() , 以及 xml_buffered_writer::write_string().

+ 这是这个函数的调用关系图:

◆ get_value_bool()

PUGI__FN bool get_value_bool ( const char_t * value)

在文件 pugixml.cpp4593 行定义.

◆ get_value_double()

PUGI__FN double get_value_double ( const char_t * value)

在文件 pugixml.cpp4575 行定义.

◆ get_value_float()

PUGI__FN float get_value_float ( const char_t * value)

在文件 pugixml.cpp4584 行定义.

◆ get_value_int()

PUGI__FN int get_value_int ( const char_t * value)

在文件 pugixml.cpp4565 行定义.

◆ get_value_uint()

PUGI__FN unsigned int get_value_uint ( const char_t * value)

在文件 pugixml.cpp4570 行定义.

◆ get_variable_scratch()

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 )

在文件 pugixml.cpp8687 行定义.

引用了 xml_memory_management_function_storage< T >::allocate , 以及 xml_memory_management_function_storage< T >::deallocate.

被这些函数引用 xpath_parser::parse_primary_expression().

+ 这是这个函数的调用关系图:

◆ get_wchar_encoding()

PUGI__FN xml_encoding get_wchar_encoding ( )

在文件 pugixml.cpp1914 行定义.

引用了 is_little_endian() , 以及 PUGI__STATIC_ASSERT.

被这些函数引用 get_buffer_encoding(), get_write_encoding(), get_write_native_encoding() , 以及 zero_terminate_buffer().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ get_write_encoding()

PUGI__FN xml_encoding get_write_encoding ( xml_encoding encoding)

在文件 pugixml.cpp3569 行定义.

引用了 get_wchar_encoding() , 以及 is_little_endian().

+ 函数调用图:

◆ get_write_native_encoding()

PUGI__FN xml_encoding get_write_native_encoding ( )

在文件 pugixml.cpp3560 行定义.

引用了 get_wchar_encoding().

被这些函数引用 xml_buffered_writer::flush() , 以及 xml_buffered_writer::write_direct().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ guess_buffer_encoding()

PUGI__FN xml_encoding guess_buffer_encoding ( const uint8_t * data,
size_t size )

在文件 pugixml.cpp1978 行定义.

引用了 parse_declaration_encoding().

被这些函数引用 get_buffer_encoding().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ has_declaration()

PUGI__FN bool has_declaration ( xml_node_struct * node)

在文件 pugixml.cpp4323 行定义.

引用了 PUGI__NODETYPE.

◆ hash_string()

PUGI__FN PUGI__UNSIGNED_OVERFLOW unsigned int hash_string ( const char_t * str)

在文件 pugixml.cpp8578 行定义.

◆ insert_attribute_after()

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

在文件 pugixml.cpp1364 行定义.

◆ insert_attribute_before()

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

在文件 pugixml.cpp1376 行定义.

◆ insert_node_after()

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

在文件 pugixml.cpp1276 行定义.

◆ insert_node_before()

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

在文件 pugixml.cpp1293 行定义.

◆ insertion_sort()

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

在文件 pugixml.cpp7386 行定义.

被这些函数引用 sort().

+ 这是这个函数的调用关系图:

◆ integer_to_string()

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

在文件 pugixml.cpp4614 行定义.

被这些函数引用 set_value_integer().

+ 这是这个函数的调用关系图:

◆ is_attribute_of()

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

在文件 pugixml.cpp4336 行定义.

◆ is_little_endian()

PUGI__FN bool is_little_endian ( )

在文件 pugixml.cpp1907 行定义.

被这些函数引用 convert_buffer(), convert_buffer_output(), get_buffer_encoding(), get_wchar_encoding() , 以及 get_write_encoding().

+ 这是这个函数的调用关系图:

◆ is_nan()

PUGI__FN bool is_nan ( double value)

在文件 pugixml.cpp8086 行定义.

被这些函数引用 convert_number_to_boolean() , 以及 xpath_ast_node::eval_string().

+ 这是这个函数的调用关系图:

◆ is_text_node()

bool is_text_node ( xml_node_struct * node)
inline

在文件 pugixml.cpp4475 行定义.

引用了 PUGI__NODETYPE.

◆ is_xpath_attribute()

bool is_xpath_attribute ( const char_t * name)
inline

在文件 pugixml.cpp8526 行定义.

引用了 PUGIXML_TEXT , 以及 starts_with().

被这些函数引用 xpath_ast_node::eval_boolean() , 以及 xpath_ast_node::step_push().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ load_buffer_impl()

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 )

在文件 pugixml.cpp4685 行定义.

引用了 xml_document_struct::buffer , 以及 make_parse_result().

被这些函数引用 load_file_impl() , 以及 load_stream_impl().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ load_file_impl()

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

在文件 pugixml.cpp4782 行定义.

引用了 xml_memory_management_function_storage< T >::allocate, xml_memory_management_function_storage< T >::deallocate, get_buffer_encoding(), get_file_size(), load_buffer_impl(), make_parse_result() , 以及 zero_terminate_buffer().

+ 函数调用图:

◆ load_stream_data_noseek()

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

在文件 pugixml.cpp4850 行定义.

引用了 xml_memory_management_function_storage< T >::allocate, xml_stream_chunk< T >::create(), auto_deleter< T >::data, xml_stream_chunk< T >::data, xml_stream_chunk< T >::next , 以及 xml_stream_chunk< T >::size.

被这些函数引用 load_stream_impl().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ load_stream_data_seek()

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

在文件 pugixml.cpp4904 行定义.

引用了 xml_memory_management_function_storage< T >::allocate, auto_deleter< T >::data, xml_memory_management_function_storage< T >::deallocate , 以及 auto_deleter< T >::release().

被这些函数引用 load_stream_impl().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ load_stream_impl()

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 )

在文件 pugixml.cpp4940 行定义.

引用了 get_buffer_encoding(), load_buffer_impl(), load_stream_data_noseek(), load_stream_data_seek(), make_parse_result() , 以及 zero_terminate_buffer().

+ 函数调用图:

◆ local_name()

PUGI__FN const char_t * local_name ( const xpath_node & node)

在文件 pugixml.cpp8339 行定义.

引用了 find_char() , 以及 qualified_name().

被这些函数引用 xpath_ast_node::eval_string().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ make_parse_result()

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

在文件 pugixml.cpp2909 行定义.

被这些函数引用 load_buffer_impl(), load_file_impl(), load_stream_impl() , 以及 xml_parser::parse().

+ 这是这个函数的调用关系图:

◆ median3()

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

在文件 pugixml.cpp7408 行定义.

引用了 swap().

被这些函数引用 sort().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ min_element()

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

在文件 pugixml.cpp7347 行定义.

被这些函数引用 xpath_first().

+ 这是这个函数的调用关系图:

◆ namespace_uri() [1/3]

PUGI__FN const char_t * namespace_uri ( const xpath_node & node)

在文件 pugixml.cpp8409 行定义.

引用了 namespace_uri().

+ 函数调用图:

◆ namespace_uri() [2/3]

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

在文件 pugixml.cpp8388 行定义.

引用了 namespace_uri_predicate::prefix , 以及 PUGIXML_TEXT.

◆ namespace_uri() [3/3]

PUGI__FN const char_t * namespace_uri ( xml_node node)

在文件 pugixml.cpp8370 行定义.

引用了 PUGIXML_TEXT.

被这些函数引用 xpath_ast_node::eval_string() , 以及 namespace_uri().

+ 这是这个函数的调用关系图:

◆ new_xpath_variable() [1/2]

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

在文件 pugixml.cpp8597 行定义.

引用了 xml_memory_management_function_storage< T >::allocate , 以及 strlength().

+ 函数调用图:

◆ new_xpath_variable() [2/2]

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

在文件 pugixml.cpp8613 行定义.

◆ node_copy_attribute()

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

在文件 pugixml.cpp4466 行定义.

引用了 get_allocator(), node_copy_string(), xml_memory_page_name_allocated_mask , 以及 xml_memory_page_value_allocated_mask.

+ 函数调用图:

◆ node_copy_contents()

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

在文件 pugixml.cpp4403 行定义.

引用了 append_new_attribute(), get_allocator(), node_copy_string(), sn, xml_memory_page_name_allocated_mask , 以及 xml_memory_page_value_allocated_mask.

被这些函数引用 node_copy_tree().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_copy_string()

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 )

在文件 pugixml.cpp4384 行定义.

引用了 strcpy_insitu(), strlength() , 以及 xml_memory_page_contents_shared_mask.

被这些函数引用 node_copy_attribute() , 以及 node_copy_contents().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_copy_tree()

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

在文件 pugixml.cpp4420 行定义.

引用了 append_new_node(), get_allocator(), node_copy_contents(), PUGI__NODETYPE , 以及 sn.

+ 函数调用图:

◆ node_is_ancestor()

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

在文件 pugixml.cpp7970 行定义.

被这些函数引用 xpath_ast_node::step_fill().

+ 这是这个函数的调用关系图:

◆ node_is_before()

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

在文件 pugixml.cpp7927 行定义.

引用了 node_is_before_sibling().

被这些函数引用 document_order_comparator::operator()().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_is_before_sibling()

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

在文件 pugixml.cpp7903 行定义.

被这些函数引用 node_is_before().

+ 这是这个函数的调用关系图:

◆ node_output()

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

在文件 pugixml.cpp4230 行定义.

引用了 indent_indent, indent_newline, node_output_end(), node_output_simple(), node_output_start(), PUGI__NODETYPE, strlength(), text_output_indent() , 以及 xml_buffered_writer::write().

+ 函数调用图:

◆ node_output_attributes()

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 )

在文件 pugixml.cpp4069 行定义.

引用了 ctx_special_attr, PUGIXML_TEXT, text_output(), text_output_indent(), xml_buffered_writer::write() , 以及 xml_buffered_writer::write_string().

被这些函数引用 node_output_simple() , 以及 node_output_start().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_output_comment()

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

在文件 pugixml.cpp4023 行定义.

引用了 xml_buffered_writer::write() , 以及 xml_buffered_writer::write_buffer().

被这些函数引用 node_output_simple().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_output_end()

PUGI__FN void node_output_end ( xml_buffered_writer & writer,
xml_node_struct * node )

在文件 pugixml.cpp4158 行定义.

引用了 PUGIXML_TEXT, xml_buffered_writer::write() , 以及 xml_buffered_writer::write_string().

被这些函数引用 node_output().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_output_pi_value()

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

在文件 pugixml.cpp4048 行定义.

引用了 xml_buffered_writer::write() , 以及 xml_buffered_writer::write_buffer().

被这些函数引用 node_output_simple().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_output_simple()

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

在文件 pugixml.cpp4168 行定义.

引用了 ctx_special_pcdata, node_output_attributes(), node_output_comment(), node_output_pi_value(), PUGI__NODETYPE, PUGIXML_TEXT, text_output(), text_output_cdata(), xml_buffered_writer::write() , 以及 xml_buffered_writer::write_string().

被这些函数引用 node_output().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ node_output_start()

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 )

在文件 pugixml.cpp4096 行定义.

引用了 ctx_special_pcdata, node_output_attributes(), PUGIXML_TEXT, text_output(), xml_buffered_writer::write() , 以及 xml_buffered_writer::write_string().

被这些函数引用 node_output().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ normalize_space()

PUGI__FN char_t * normalize_space ( char_t * buffer)

在文件 pugixml.cpp8414 行定义.

引用了 ct_space , 以及 PUGI__IS_CHARTYPE.

被这些函数引用 xpath_ast_node::eval_string().

+ 这是这个函数的调用关系图:

◆ open_file_wide()

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

在文件 pugixml.cpp4993 行定义.

引用了 convert_path_heap() , 以及 xml_memory_management_function_storage< T >::deallocate.

+ 函数调用图:

◆ parse_declaration_encoding()

PUGI__FN bool parse_declaration_encoding ( const uint8_t * data,
size_t size,
const uint8_t *& out_encoding,
size_t & out_length )

在文件 pugixml.cpp1924 行定义.

引用了 ct_space, ct_symbol, PUGI__IS_CHARTYPE, PUGI__SCANCHAR , 以及 PUGI__SCANCHARTYPE.

被这些函数引用 guess_buffer_encoding().

+ 这是这个函数的调用关系图:

◆ partition3()

template<typename T , typename Pred >
void partition3 ( T * begin,
T * end,
T pivot,
const Pred & pred,
T ** out_eqbeg,
T ** out_eqend )

在文件 pugixml.cpp7417 行定义.

引用了 swap().

被这些函数引用 sort().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ prepend_attribute()

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

在文件 pugixml.cpp1348 行定义.

◆ prepend_node()

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

在文件 pugixml.cpp1258 行定义.

◆ qualified_name()

PUGI__FN const char_t * qualified_name ( const xpath_node & node)

在文件 pugixml.cpp8334 行定义.

被这些函数引用 xpath_ast_node::eval_string() , 以及 local_name().

+ 这是这个函数的调用关系图:

◆ remove_attribute()

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

在文件 pugixml.cpp1388 行定义.

◆ remove_node()

void remove_node ( xml_node_struct * node)
inline

在文件 pugixml.cpp1310 行定义.

◆ reverse()

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

在文件 pugixml.cpp7358 行定义.

引用了 swap().

被这些函数引用 pugi::xpath_node_set::sort() , 以及 xpath_sort().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ round_nearest()

PUGI__FN double round_nearest ( double value)

在文件 pugixml.cpp8322 行定义.

被这些函数引用 xpath_ast_node::eval_string().

+ 这是这个函数的调用关系图:

◆ round_nearest_nzero()

PUGI__FN double round_nearest_nzero ( double value)

在文件 pugixml.cpp8327 行定义.

被这些函数引用 xpath_ast_node::eval_number().

+ 这是这个函数的调用关系图:

◆ save_file_impl()

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

在文件 pugixml.cpp5013 行定义.

◆ set_value_ascii()

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

在文件 pugixml.cpp4636 行定义.

引用了 strcpy_insitu().

被这些函数引用 set_value_convert() , 以及 set_value_convert().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ set_value_bool()

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

在文件 pugixml.cpp4680 行定义.

引用了 PUGIXML_TEXT , 以及 strcpy_insitu().

+ 函数调用图:

◆ set_value_convert() [1/2]

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

在文件 pugixml.cpp4671 行定义.

引用了 PUGI__SNPRINTF , 以及 set_value_ascii().

+ 函数调用图:

◆ set_value_convert() [2/2]

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

在文件 pugixml.cpp4662 行定义.

引用了 PUGI__SNPRINTF , 以及 set_value_ascii().

+ 函数调用图:

◆ set_value_integer()

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

在文件 pugixml.cpp4652 行定义.

引用了 integer_to_string() , 以及 strcpy_insitu().

+ 函数调用图:

◆ sort()

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

在文件 pugixml.cpp7444 行定义.

引用了 insertion_sort(), median3(), partition3() , 以及 sort().

被这些函数引用 xpath_node_set_raw::remove_duplicates(), sort() , 以及 xpath_sort().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ starts_with()

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

在文件 pugixml.cpp7813 行定义.

被这些函数引用 xpath_ast_node::eval_boolean(), is_xpath_attribute(), namespace_uri_predicate::operator()(), xpath_ast_node::step_push() , 以及 xpath_ast_node::step_push().

+ 这是这个函数的调用关系图:

◆ strconv_cdata()

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

在文件 pugixml.cpp2633 行定义.

引用了 ct_parse_cdata, gap::flush(), PUGI__ENDSWITH, PUGI__IS_CHARTYPE, PUGI__SCANWHILE_UNROLL , 以及 gap::push().

被这些函数引用 xml_parser::parse_exclamation().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ strconv_comment()

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

在文件 pugixml.cpp2605 行定义.

引用了 ct_parse_comment, gap::flush(), PUGI__ENDSWITH, PUGI__IS_CHARTYPE, PUGI__SCANWHILE_UNROLL , 以及 gap::push().

被这些函数引用 xml_parser::parse_exclamation().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ strconv_escape()

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

在文件 pugixml.cpp2452 行定义.

引用了 utf8_writer::any() , 以及 gap::push().

被这些函数引用 strconv_pcdata_impl< opt_trim, opt_eol, opt_escape >::parse(), strconv_attribute_impl< opt_escape >::parse_eol(), strconv_attribute_impl< opt_escape >::parse_simple(), strconv_attribute_impl< opt_escape >::parse_wconv() , 以及 strconv_attribute_impl< opt_escape >::parse_wnorm().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ strcpy_insitu()

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 )

在文件 pugixml.cpp2362 行定义.

引用了 xml_allocator::allocate_string(), xml_allocator::deallocate_string(), PUGI__GETPAGE_IMPL, xml_allocator::reserve() , 以及 strcpy_insitu_allow().

被这些函数引用 node_copy_string(), set_value_ascii(), set_value_bool() , 以及 set_value_integer().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ strcpy_insitu_allow()

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

在文件 pugixml.cpp2345 行定义.

引用了 strlength() , 以及 xml_memory_page_contents_shared_mask.

被这些函数引用 strcpy_insitu().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ strequal()

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

在文件 pugixml.cpp230 行定义.

被这些函数引用 xpath_ast_node::eval_boolean(), xpath_string::operator!=(), xpath_string::operator==(), xpath_ast_node::step_push() , 以及 xpath_ast_node::step_push().

+ 这是这个函数的调用关系图:

◆ strequalrange()

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

在文件 pugixml.cpp242 行定义.

被这些函数引用 namespace_uri_predicate::operator()() , 以及 xpath_lexer_string::operator==().

+ 这是这个函数的调用关系图:

◆ string_to_integer()

template<typename U >
PUGI__FN PUGI__UNSIGNED_OVERFLOW U string_to_integer ( const char_t * value,
U minv,
U maxv )

在文件 pugixml.cpp4483 行定义.

引用了 ct_space, PUGI__IS_CHARTYPE , 以及 PUGI__STATIC_ASSERT.

◆ string_value()

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

在文件 pugixml.cpp7849 行定义.

引用了 xpath_string::append() , 以及 xpath_string::from_const().

被这些函数引用 xpath_ast_node::compare_eq(), xpath_ast_node::compare_rel(), xpath_ast_node::eval_number(), xpath_ast_node::eval_string() , 以及 carla::opendrive::parser::ParseDouble().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ strlength()

PUGI__NS_END PUGI__NS_BEGIN PUGI__FN size_t strlength ( const char_t * s)

在文件 pugixml.cpp218 行定义.

被这些函数引用 xpath_string::data(), xpath_string::length(), new_xpath_variable(), node_copy_string(), node_output(), strcpy_insitu_allow() , 以及 xml_buffered_writer::write_string().

+ 这是这个函数的调用关系图:

◆ strlength_wide()

PUGI__FN size_t strlength_wide ( const wchar_t * s)

在文件 pugixml.cpp252 行定义.

被这些函数引用 convert_path_heap().

+ 这是这个函数的调用关系图:

◆ swap()

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

在文件 pugixml.cpp7340 行定义.

被这些函数引用 xpath_ast_node::compare_eq(), median3(), partition3() , 以及 reverse().

+ 这是这个函数的调用关系图:

◆ text_output()

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

在文件 pugixml.cpp3953 行定义.

引用了 text_output_escaped() , 以及 xml_buffered_writer::write_string().

被这些函数引用 node_output_attributes(), node_output_simple() , 以及 node_output_start().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ text_output_cdata()

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

在文件 pugixml.cpp3961 行定义.

引用了 xml_buffered_writer::write() , 以及 xml_buffered_writer::write_buffer().

被这些函数引用 node_output_simple().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ text_output_escaped()

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

在文件 pugixml.cpp3912 行定义.

引用了 PUGI__IS_CHARTYPEX, PUGI__SCANWHILE_UNROLL, xml_buffered_writer::write() , 以及 xml_buffered_writer::write_buffer().

被这些函数引用 text_output().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ text_output_indent()

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

在文件 pugixml.cpp3983 行定义.

引用了 xml_buffered_writer::write() , 以及 xml_buffered_writer::write_buffer().

被这些函数引用 node_output() , 以及 node_output_attributes().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ tolower_ascii()

PUGI__FN char_t tolower_ascii ( char_t ch)

在文件 pugixml.cpp7844 行定义.

被这些函数引用 xpath_ast_node::eval_boolean().

+ 这是这个函数的调用关系图:

◆ translate()

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

在文件 pugixml.cpp8442 行定义.

引用了 find_char() , 以及 PUGI__DMC_VOLATILE.

被这些函数引用 xpath_ast_node::eval_string().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ translate_table()

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

在文件 pugixml.cpp8496 行定义.

被这些函数引用 xpath_ast_node::eval_string().

+ 这是这个函数的调用关系图:

◆ translate_table_generate()

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

在文件 pugixml.cpp8464 行定义.

引用了 xpath_allocator::allocate().

被这些函数引用 xpath_ast_node::optimize_self().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ truncate_zeros()

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

在文件 pugixml.cpp8136 行定义.

被这些函数引用 convert_number_to_mantissa_exponent().

+ 这是这个函数的调用关系图:

◆ unique()

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

在文件 pugixml.cpp7363 行定义.

被这些函数引用 xpath_node_set_raw::remove_duplicates().

+ 这是这个函数的调用关系图:

◆ xpath_first()

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

在文件 pugixml.cpp8753 行定义.

引用了 min_element().

被这些函数引用 xpath_node_set_raw::first().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ xpath_get_order()

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

在文件 pugixml.cpp8714 行定义.

被这些函数引用 xpath_sort().

+ 这是这个函数的调用关系图:

◆ xpath_sort()

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

在文件 pugixml.cpp8730 行定义.

引用了 reverse(), sort() , 以及 xpath_get_order().

被这些函数引用 xpath_node_set_raw::sort_do().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ zero_terminate_buffer()

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

在文件 pugixml.cpp4758 行定义.

引用了 get_wchar_encoding().

被这些函数引用 load_file_impl() , 以及 load_stream_impl().

+ 函数调用图:
+ 这是这个函数的调用关系图:

变量说明

◆ chartype_table

const unsigned char chartype_table[256]
static
初始值:
=
{
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
}

在文件 pugixml.cpp1846 行定义.

◆ chartypex_table

const unsigned char chartypex_table[256]
static
初始值:
=
{
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
}

在文件 pugixml.cpp1876 行定义.

◆ dummy_node_set

const xpath_node_set dummy_node_set
static

在文件 pugixml.cpp8576 行定义.

◆ xml_memory_block_alignment

PUGI__NS_END static PUGI__NS_BEGIN const uintptr_t xml_memory_block_alignment = sizeof(void*)
static

在文件 pugixml.cpp437 行定义.

被这些函数引用 xml_allocator::allocate_string() , 以及 xml_allocator::deallocate_string().

◆ xml_memory_page_contents_shared_mask

const uintptr_t xml_memory_page_contents_shared_mask = 64
static

在文件 pugixml.cpp441 行定义.

被这些函数引用 document_buffer_order(), node_copy_string() , 以及 strcpy_insitu_allow().

◆ xml_memory_page_name_allocated_mask

const uintptr_t xml_memory_page_name_allocated_mask = 32
static

在文件 pugixml.cpp442 行定义.

被这些函数引用 node_copy_attribute() , 以及 node_copy_contents().

◆ xml_memory_page_name_allocated_or_shared_mask

const uintptr_t xml_memory_page_name_allocated_or_shared_mask = xml_memory_page_name_allocated_mask | xml_memory_page_contents_shared_mask
static

在文件 pugixml.cpp447 行定义.

◆ xml_memory_page_size

const size_t xml_memory_page_size
static

◆ xml_memory_page_type_mask

const uintptr_t xml_memory_page_type_mask = 15
static

在文件 pugixml.cpp444 行定义.

◆ xml_memory_page_value_allocated_mask

const uintptr_t xml_memory_page_value_allocated_mask = 16
static

在文件 pugixml.cpp443 行定义.

被这些函数引用 node_copy_attribute() , 以及 node_copy_contents().

◆ xml_memory_page_value_allocated_or_shared_mask

const uintptr_t xml_memory_page_value_allocated_or_shared_mask = xml_memory_page_value_allocated_mask | xml_memory_page_contents_shared_mask
static

在文件 pugixml.cpp448 行定义.

◆ xpath_memory_block_alignment

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

在文件 pugixml.cpp7485 行定义.

被这些函数引用 xpath_allocator::allocate() , 以及 xpath_allocator::reallocate().

◆ xpath_memory_page_size

PUGI__NS_END static PUGI__NS_BEGIN const size_t xpath_memory_page_size
static
初始值:
=
4096

在文件 pugixml.cpp7477 行定义.