00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _terimber_mngxml_hpp_
00029 #define _terimber_mngxml_hpp_
00030
00031 #include "xml/mngxml.h"
00032
00033 BEGIN_TERIMBER_NAMESPACE
00034 #pragma pack(4)
00035
00037
00038
00039
00040
00041
00042
00043
00044 xml_forceinline
00045 ub1_t
00046 byte_manager::pick()
00047 {
00048 return _stream.pick();
00049 }
00050
00051 xml_forceinline
00052 ub1_t
00053 byte_manager::pop()
00054 {
00055 return _stream.pop();
00056 }
00057
00058 xml_forceinline
00059 ub1_t
00060 byte_manager::pip()
00061 {
00062 return _stream.pip();
00063 }
00064
00065 xml_forceinline
00066 void
00067 byte_manager::skip_white_space(bool mustPresent, const char* message)
00068 {
00069 _stream.skip_white_space(mustPresent, message);
00070 }
00071
00072 xml_forceinline
00073 void
00074 byte_manager::push(ub1_t x)
00075 {
00076 _stream.push(x);
00077 }
00078
00079 xml_forceinline
00080 void
00081 byte_manager::push(const ub1_t* x, size_t len)
00082 {
00083 _stream.push(x, len);
00084 }
00085
00086 xml_forceinline
00087 void
00088 byte_manager::throw_exception(const char* msg_text)
00089 {
00090 _stream.throw_exception(msg_text);
00091 }
00092
00093 xml_forceinline
00094 void
00095 byte_manager::skip_string(const char* x, const char* message)
00096 {
00097 _stream.skip_string(x, message);
00098 }
00099
00100 xml_forceinline
00101 void
00102 byte_manager::skip_sign(ub1_t symbol, bool skip_before, bool skip_after, const char* message)
00103 {
00104 _stream.skip_sign(symbol, skip_before, skip_after, message);
00105 }
00106
00107 xml_forceinline
00108 ub1_t
00109 byte_manager::skip_quote(ub1_t symbol)
00110 {
00111 return _stream.skip_quote(symbol);
00112 }
00113
00114
00115
00116 xml_forceinline
00117 const char*
00118 byte_manager::parseName()
00119 {
00120
00121 ub1_t symbol = pick();
00122 if (!symbol || !is_name_first_char(symbol))
00123 _stream.throw_exception("Illegal first symbol in name");
00124
00125 _tmp_store1.reset();
00126 _tmp_store1 << symbol;
00127
00128 while ((symbol = pop()) && is_name_char(symbol))
00129 _tmp_store1 << symbol;
00130
00131 return _tmp_store1.persist();
00132 }
00133
00134
00135 inline
00136 bool
00137 byte_manager::get_subset() const
00138 {
00139 return _stream.get_subset();
00140 }
00141
00142
00143 inline
00144 size_t
00145 byte_manager::get_standalone() const
00146 {
00147 return _stream.get_standalone();
00148 }
00149
00150
00151 inline
00152 size_t
00153 byte_manager::get_version() const
00154 {
00155 return _stream.get_version();
00156 }
00157
00158
00159 xml_forceinline
00160 void
00161 byte_manager::reset_all_tmp(bool reset_allocator)
00162 {
00163 _tmp_store1.reset();
00164 _tmp_store2.reset();
00165 _tmp_store3.reset();
00166 if (reset_allocator)
00167 _tmp_allocator->reset();
00168 }
00169
00170 #pragma pack()
00171 END_TERIMBER_NAMESPACE
00172
00173 #endif // _terimber_mngxml_hpp_