libzypp  11.13.5
Node.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_PARSER_XML_NODE_H
13 #define ZYPP_PARSER_XML_NODE_H
14 
15 #include <iosfwd>
16 
17 #include "zypp/base/SafeBool.h"
18 
20 
22 namespace zypp
23 {
24 
25  namespace xml
26  {
27 
29  //
30  // CLASS NAME : Node
31  //
37  class Node : private base::SafeBool<Node>
38  {
39  public:
41  Node();
42 
44  Node( xmlTextReaderPtr const & reader_r );
45 
48 
49  public:
51  int attributeCount() const
52  { return xmlTextReaderAttributeCount( _reader ); }
53 
56  { return xmlTextReaderConstBaseUri( _reader ); }
57 
59  int columnNumber() const
60  { return xmlTextReaderGetParserColumnNumber( _reader ); }
61 
63  int depth() const
64  { return xmlTextReaderDepth( _reader ); }
65 
68  { return xmlTextReaderConstEncoding( _reader ); }
69 
72  XmlString getAttribute( const char * name_r ) const
73  { return XmlString( xmlTextReaderGetAttribute( _reader, reinterpret_cast<const xmlChar *>(name_r) ),
74  XmlString::FREE ); }
75 
78  XmlString getAttributeNo( int no_r ) const
79  { return XmlString( xmlTextReaderGetAttributeNo( _reader, no_r ), XmlString::FREE ); }
80 
82  int hasAttributes() const
83  { return xmlTextReaderHasAttributes( _reader ); }
84 
86  int hasValue() const
87  { return xmlTextReaderHasValue( _reader ); }
88 
90  bool isAttribute() const
91  { return( nodeType() == XML_READER_TYPE_ATTRIBUTE ); }
92 
95  int isDefault() const
96  { return xmlTextReaderIsDefault( _reader ); }
97 
99  int isEmptyElement() const
100  { return xmlTextReaderIsEmptyElement( _reader ); }
101 
104  int isNamespaceDecl() const
105  { return xmlTextReaderIsNamespaceDecl( _reader ); }
106 
108  int lineNumber() const
109  { return xmlTextReaderGetParserLineNumber( _reader ); }
110 
113  { return xmlTextReaderConstLocalName( _reader ); }
114 
116  XmlString name() const
117  { return xmlTextReaderConstName( _reader ); }
118 
121  { return xmlTextReaderConstNamespaceUri( _reader ); }
122 
125  { return (NodeType)xmlTextReaderNodeType( _reader ); }
126 
129  { return xmlTextReaderConstPrefix( _reader ); }
130 
133  int quoteChar() const
134  { return xmlTextReaderQuoteChar( _reader ); }
135 
138  { return (ReadState)xmlTextReaderReadState( _reader ); }
139 
141  XmlString value() const
142  { return xmlTextReaderConstValue( _reader ); }
143 
146  { return XmlString( xmlTextReaderValue( _reader ), XmlString::FREE ); }
147 
150  { return xmlTextReaderConstXmlLang( _reader ); }
151 
154  { return xmlTextReaderConstXmlVersion( _reader ); }
155 
156  private:
158  static xmlTextReaderPtr const _no_reader;
160  xmlTextReaderPtr const & _reader;
161 
162  private:
165  bool boolTest() const { return _reader; }
166  };
168 
170  std::ostream & operator<<( std::ostream & str, const Node & obj );
171 
173  } // namespace xml
176 } // namespace zypp
178 #endif // ZYPP_PARSER_XML_NODE_H