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, const shared_ptr< ParseDefConsume > &target_r=shared_ptr< ParseDefConsume >())
 ~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 94 of file ParseDef.cc.


Member Typedef Documentation

Definition at line 98 of file ParseDef.cc.

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

Definition at line 99 of file ParseDef.cc.


Constructor & Destructor Documentation

zypp::xml::ParseDef::Impl::Impl ( const std::string &  name_r,
Mode  mode_r,
const shared_ptr< ParseDefConsume > &  target_r = shared_ptr<ParseDefConsume>() 
) [inline]

Definition at line 102 of file ParseDef.cc.

References _callback, and zypp::xml::ParseDefConsumeRedirect::setRedirect().

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

Definition at line 111 of file ParseDef.cc.

References _subnodes.


Member Function Documentation

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

Definition at line 119 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_OPTIONAL.

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

Definition at line 122 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_MANDTAORY.

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

Definition at line 125 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_ONCE.

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

Definition at line 128 of file ParseDef.cc.

References _mode, and zypp::xml::ParseDefTraits::BIT_MULTIPLE.

Referenced by take().

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

Definition at line 186 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 134 of file ParseDef.cc.

References _subnodes.

Referenced by take().

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

bool zypp::xml::ParseDef::Impl::skipNode ( xml::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 329 of file ParseDef.cc.

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

Referenced by take().

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

Definition at line 155 of file ParseDef.cc.

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 161 of file ParseDef.cc.


Friends And Related Function Documentation

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

Definition at line 348 of file ParseDef.cc.


Member Data Documentation

Definition at line 169 of file ParseDef.cc.

Referenced by zypp::xml::operator<<(), and take().

Definition at line 170 of file ParseDef.cc.

Referenced by isMandatory(), isOptional(), multiDef(), zypp::xml::operator<<(), and singleDef().

Definition at line 171 of file ParseDef.cc.

Referenced by zypp::xml::operator<<(), and take().

Definition at line 173 of file ParseDef.cc.

Definition at line 174 of file ParseDef.cc.

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

Definition at line 175 of file ParseDef.cc.

Referenced by Impl(), and take().

Definition at line 177 of file ParseDef.cc.

Referenced by take().


The documentation for this class was generated from the following file:

doxygen