zypp::xml::ParseDef::Impl Class Reference

ParseDef implementation. More...

List of all members.

Public Types

typedef shared_ptr< ImplImplPtr
typedef std::map< std::string,
ImplPtr
SubNodes

Public Member Functions

 Impl (const std::string &name_r, Mode mode_r)
 ~Impl ()
bool isOptional () const
bool isMandatory () const
bool singleDef () const
bool multiDef () const
void addNode (const ImplPtr &subnode_r)
ImplPtr getNode (const std::string &name_r) const
void take (Reader &reader_r)

Public Attributes

std::string _name
Mode _mode
DefaultIntegral< unsigned, 0 > _visited
Impl_parent
SubNodes _subnodes
ParseDefImplConsume _callback
DefaultIntegral< int,-1 > _parseDepth

Private Member Functions

bool skipNode (Reader &reader_r)
 Skip the current node.
std::string exstr (const std::string &what_r, const Impl &impl_r) const
std::string exstr (const std::string &what_r, const Impl &impl_r, const Reader &reader_r) const

Friends

std::ostream & operator<< (std::ostream &str, const ParseDef::Impl &obj)


Detailed Description

ParseDef implementation.

Todo:
Check using share_ptr_from_this for parent in addNode.

Definition at line 127 of file ParseDef.cc.


Member Typedef Documentation

typedef shared_ptr<Impl> zypp::xml::ParseDef::Impl::ImplPtr
 

Definition at line 131 of file ParseDef.cc.

typedef std::map<std::string, ImplPtr> zypp::xml::ParseDef::Impl::SubNodes
 

Definition at line 132 of file ParseDef.cc.


Constructor & Destructor Documentation

zypp::xml::ParseDef::Impl::Impl const std::string &  name_r,
Mode  mode_r
[inline]
 

Definition at line 135 of file ParseDef.cc.

zypp::xml::ParseDef::Impl::~Impl  )  [inline]
 

Definition at line 141 of file ParseDef.cc.

References _subnodes.


Member Function Documentation

bool zypp::xml::ParseDef::Impl::isOptional  )  const [inline]
 

Definition at line 149 of file ParseDef.cc.

References zypp::xml::ParseDefTraits::BIT_OPTIONAL.

bool zypp::xml::ParseDef::Impl::isMandatory  )  const [inline]
 

Definition at line 152 of file ParseDef.cc.

References zypp::xml::ParseDefTraits::BIT_MANDTAORY.

bool zypp::xml::ParseDef::Impl::singleDef  )  const [inline]
 

Definition at line 155 of file ParseDef.cc.

References zypp::xml::ParseDefTraits::BIT_ONCE.

bool zypp::xml::ParseDef::Impl::multiDef  )  const [inline]
 

Definition at line 158 of file ParseDef.cc.

References zypp::xml::ParseDefTraits::BIT_MULTIPLE.

void zypp::xml::ParseDef::Impl::addNode const ImplPtr subnode_r  ) 
 

Definition at line 216 of file ParseDef.cc.

References _subnodes, exstr(), and ZYPP_THROW.

ImplPtr zypp::xml::ParseDef::Impl::getNode const std::string &  name_r  )  const [inline]
 

Definition at line 164 of file ParseDef.cc.

void zypp::xml::ParseDef::Impl::take Reader reader_r  ) 
 

Definition at line 237 of file ParseDef.cc.

References exstr(), and ZYPP_THROW.

bool zypp::xml::ParseDef::Impl::skipNode Reader reader_r  )  [private]
 

Skip the current node.

Precondition:
Current node must be XML_READER_TYPE_ELEMENT.
Postcondition:
At the corresponding end node. (XML_READER_TYPE_END_ELEMENT or atill at the same node, if it'a an empty element <node />).
Returns:
last call to xml::Reader::nextNode.
Exceptions:
ParseDefValidateException if no matching end node found.

Definition at line 343 of file ParseDef.cc.

References exstr(), zypp::str::form(), zypp::xml::Reader::seekToEndNode(), and ZYPP_THROW.

std::string zypp::xml::ParseDef::Impl::exstr const std::string &  what_r,
const Impl impl_r
const [inline, private]
 

Definition at line 185 of file ParseDef.cc.

References zypp::solver::detail::str.

Referenced by addNode(), skipNode(), and take().

std::string zypp::xml::ParseDef::Impl::exstr const std::string &  what_r,
const Impl impl_r,
const Reader reader_r
const [inline, private]
 

Definition at line 191 of file ParseDef.cc.

References zypp::solver::detail::str.


Friends And Related Function Documentation

std::ostream& operator<< std::ostream &  str,
const ParseDef::Impl obj
[friend]
 

Definition at line 362 of file ParseDef.cc.


Member Data Documentation

std::string zypp::xml::ParseDef::Impl::_name
 

Definition at line 199 of file ParseDef.cc.

Referenced by zypp::xml::operator<<().

Mode zypp::xml::ParseDef::Impl::_mode
 

Definition at line 200 of file ParseDef.cc.

Referenced by zypp::xml::operator<<().

DefaultIntegral<unsigned,0> zypp::xml::ParseDef::Impl::_visited
 

Definition at line 201 of file ParseDef.cc.

Referenced by zypp::xml::operator<<().

Impl* zypp::xml::ParseDef::Impl::_parent
 

Definition at line 203 of file ParseDef.cc.

SubNodes zypp::xml::ParseDef::Impl::_subnodes
 

Definition at line 204 of file ParseDef.cc.

Referenced by addNode(), and ~Impl().

ParseDefImplConsume zypp::xml::ParseDef::Impl::_callback
 

Definition at line 205 of file ParseDef.cc.

DefaultIntegral<int,-1> zypp::xml::ParseDef::Impl::_parseDepth
 

Definition at line 207 of file ParseDef.cc.


The documentation for this class was generated from the following file:
Generated on Thu Apr 24 02:25:17 2008 for zypp by  doxygen 1.4.6