14 #ifndef PUGIXML_VERSION
16 # define PUGIXML_VERSION 120
22 #ifndef HEADER_PUGIXML_HPP
23 #define HEADER_PUGIXML_HPP
29 #if !defined(PUGIXML_NO_XPATH) && !defined(PUGIXML_NO_EXCEPTIONS)
34 #ifndef PUGIXML_NO_STL
41 #ifndef PUGIXML_DEPRECATED
42 # if defined(__GNUC__)
43 # define PUGIXML_DEPRECATED __attribute__((deprecated))
44 # elif defined(_MSC_VER) && _MSC_VER >= 1300
45 # define PUGIXML_DEPRECATED __declspec(deprecated)
47 # define PUGIXML_DEPRECATED
58 # define PUGIXML_CLASS PUGIXML_API
62 #ifndef PUGIXML_FUNCTION
63 # define PUGIXML_FUNCTION PUGIXML_API
67 #ifdef PUGIXML_WCHAR_MODE
68 # define PUGIXML_TEXT(t) L ## t
69 # define PUGIXML_CHAR wchar_t
71 # define PUGIXML_TEXT(t) t
72 # define PUGIXML_CHAR char
80 #ifndef PUGIXML_NO_STL
82 typedef std::basic_string<PUGIXML_CHAR, std::char_traits<PUGIXML_CHAR>, std::allocator<PUGIXML_CHAR> >
string_t;
195 struct xml_attribute_struct;
196 struct xml_node_struct;
208 #ifndef PUGIXML_NO_XPATH
226 It
end()
const {
return _end; }
239 virtual void write(
const void* data,
size_t size) = 0;
249 virtual void write(
const void* data,
size_t size);
255 #ifndef PUGIXML_NO_STL
264 virtual void write(
const void* data,
size_t size);
267 std::basic_ostream<char, std::char_traits<char> >* narrow_stream;
268 std::basic_ostream<wchar_t, std::char_traits<wchar_t> >* wide_stream;
279 xml_attribute_struct* _attr;
291 operator unspecified_bool_type()
const;
294 bool operator!()
const;
315 int as_int(
int def = 0)
const;
316 unsigned int as_uint(
unsigned int def = 0)
const;
317 double as_double(
double def = 0)
const;
318 float as_float(
float def = 0)
const;
321 bool as_bool(
bool def =
false)
const;
324 bool set_name(
const char_t* rhs);
325 bool set_value(
const char_t* rhs);
328 bool set_value(
int rhs);
329 bool set_value(
unsigned int rhs);
330 bool set_value(
double rhs);
331 bool set_value(
bool rhs);
345 size_t hash_value()
const;
348 xml_attribute_struct* internal_object()
const;
367 typedef void (*unspecified_bool_type)(
xml_node***);
377 operator unspecified_bool_type()
const;
380 bool operator!()
const;
384 bool operator!=(
const xml_node& r)
const;
385 bool operator<(
const xml_node& r)
const;
386 bool operator>(
const xml_node& r)
const;
387 bool operator<=(
const xml_node& r)
const;
388 bool operator>=(
const xml_node& r)
const;
428 const char_t* child_value()
const;
434 bool set_name(
const char_t* rhs);
435 bool set_value(
const char_t* rhs);
508 if (pred(cur))
return cur;
527 #ifndef PUGIXML_NO_STL
538 #ifndef PUGIXML_NO_XPATH
551 #ifndef PUGIXML_NO_STL
554 void print(std::basic_ostream<
wchar_t, std::char_traits<wchar_t> >& os,
const char_t* indent =
PUGIXML_TEXT(
"\t"),
unsigned int flags = format_default,
unsigned int depth = 0)
const;
560 iterator begin()
const;
561 iterator end()
const;
566 attribute_iterator attributes_begin()
const;
567 attribute_iterator attributes_end()
const;
575 ptrdiff_t offset_debug()
const;
578 size_t hash_value()
const;
581 xml_node_struct* internal_object()
const;
595 xml_node_struct* _root;
597 typedef void (*unspecified_bool_type)(
xml_text***);
599 explicit xml_text(xml_node_struct* root);
601 xml_node_struct* _data_new();
602 xml_node_struct* _data()
const;
609 operator unspecified_bool_type()
const;
612 bool operator!()
const;
618 const char_t*
get()
const;
624 int as_int(
int def = 0)
const;
625 unsigned int as_uint(
unsigned int def = 0)
const;
626 double as_double(
double def = 0)
const;
627 float as_float(
float def = 0)
const;
630 bool as_bool(
bool def =
false)
const;
633 bool set(
const char_t* rhs);
637 bool set(
unsigned int rhs);
638 bool set(
double rhs);
644 xml_text& operator=(
unsigned int rhs);
676 #ifndef PUGIXML_NO_STL
718 #ifndef PUGIXML_NO_STL
752 #ifndef PUGIXML_NO_STL
842 operator bool()
const;
845 const char* description()
const;
878 #ifndef PUGIXML_NO_STL
881 xml_parse_result load(std::basic_istream<
wchar_t, std::char_traits<wchar_t> >&
stream,
unsigned int options = parse_default);
905 #ifndef PUGIXML_NO_STL
908 void save(std::basic_ostream<
wchar_t, std::char_traits<wchar_t> >&
stream,
const char_t* indent =
PUGIXML_TEXT(
"\t"),
unsigned int flags = format_default)
const;
919 #ifndef PUGIXML_NO_XPATH
943 operator bool()
const;
946 const char* description()
const;
972 bool get_boolean()
const;
973 double get_number()
const;
974 const char_t* get_string()
const;
978 bool set(
bool value);
979 bool set(
double value);
1006 bool set(
const char_t* name,
double value);
1022 typedef void (*unspecified_bool_type)(
xpath_query***);
1026 xpath_query& operator=(
const xpath_query&);
1045 double evaluate_number(
const xpath_node& n)
const;
1047 #ifndef PUGIXML_NO_STL
1068 operator unspecified_bool_type()
const;
1071 bool operator!()
const;
1074 #ifndef PUGIXML_NO_EXCEPTIONS
1086 virtual const char* what()
const throw();
1100 typedef void (*unspecified_bool_type)(
xpath_node***);
1118 operator unspecified_bool_type()
const;
1121 bool operator!()
const;
1166 size_t size()
const;
1172 const_iterator begin()
const;
1173 const_iterator end()
const;
1176 void sort(
bool reverse =
false);
1192 void _assign(const_iterator begin, const_iterator end);
1196 #ifndef PUGIXML_NO_STL
1199 std::basic_string<char, std::char_traits<char>, std::allocator<char> >
PUGIXML_FUNCTION as_utf8(
const std::basic_string<
wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&
str);
1203 std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >
PUGIXML_FUNCTION as_wide(
const std::basic_string<
char, std::char_traits<char>, std::allocator<char> >&
str);
1207 typedef void* (*allocation_function)(
size_t size);
1220 #if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC))
1230 #if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC)
deallocation_function get_memory_deallocation_function()
const unsigned int parse_declaration
const unsigned int parse_wnorm_attribute
xml_object_range(It b, It e)
xml_node first_child() const
const unsigned int parse_minimal
xml_node_iterator iterator
const unsigned int format_no_escapes
xml_node * operator->() const
bool operator==(const xml_named_node_iterator &rhs) const
xml_named_node_iterator()
const unsigned int format_default
Py_ssize_t Py_ssize_t size
bool operator!=(const xml_named_node_iterator &rhs) const
std::forward_iterator_tag iterator_category
const unsigned int parse_pi
const xml_named_node_iterator & operator++()
allocation_function get_memory_allocation_function()
xml_node & operator*() const
const unsigned int format_indent
xml_attribute find_attribute(Predicate pred) const
const unsigned int parse_doctype
xml_node find_node(Predicate pred) const
const unsigned int parse_escapes
char char char char char * name
std::bidirectional_iterator_tag iterator_category
void(* deallocation_function)(void *ptr)
const unsigned int format_raw
const unsigned int parse_default
void set_memory_management_functions(allocation_function allocate, deallocation_function deallocate)
const unsigned int parse_wconv_attribute
xml_node next_sibling() const
xml_attribute_iterator attribute_iterator
const unsigned int format_write_bom
const unsigned int format_save_file_text
const unsigned int parse_eol
bool operator==(const FBPickInfos &pLhs, const FBPickInfos &pRhs)
const xpath_node * const_iterator
ptrdiff_t difference_type
std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > as_wide(const char *str)
const unsigned int parse_comments
const unsigned int parse_ws_pcdata_single
xml_attribute next_attribute() const
const unsigned int parse_cdata
xml_attribute & reference
const unsigned int format_no_declaration
const unsigned int parse_ws_pcdata
std::basic_string< char, std::char_traits< char >, std::allocator< char > > as_utf8(const wchar_t *str)
std::bidirectional_iterator_tag iterator_category
const unsigned int parse_full
void *(* allocation_function)(size_t size)
ptrdiff_t difference_type
xml_node find_child(Predicate pred) const
ptrdiff_t difference_type
std::basic_string< char, std::char_traits< char >, std::allocator< char > > string_t