Author: mlandres
Date: Fri Oct 31 18:03:28 2008
New Revision: 11563
URL: http://svn.opensuse.org/viewcvs/zypp?rev=11563&view=rev
Log:
Allow to define consumer in ctor
Modified:
trunk/libzypp/zypp/parser/xml/ParseDef.cc
trunk/libzypp/zypp/parser/xml/ParseDef.h
trunk/libzypp/zypp/parser/xml/ParseDefConsume.cc
Modified: trunk/libzypp/zypp/parser/xml/ParseDef.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/xml/ParseDef.cc?rev=11563&r1=11562&r2=11563&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/xml/ParseDef.cc (original)
+++ trunk/libzypp/zypp/parser/xml/ParseDef.cc Fri Oct 31 18:03:28 2008
@@ -132,11 +132,14 @@
typedef std::map SubNodes;
public:
- Impl( const std::string & name_r, Mode mode_r )
+ Impl( const std::string & name_r, Mode mode_r, const shared_ptr<ParseDefConsume> & target_r = shared_ptr<ParseDefConsume>() )
: _name( name_r )
, _mode( mode_r )
, _parent( NULL )
- {}
+ {
+ if ( target_r )
+ _callback.setRedirect( target_r );
+ }
~Impl()
{
@@ -286,7 +289,8 @@
}
else
{
- WAR << "Skip unknown node " << *reader_r << " in "<< *this << endl;
+ if ( ParseDef::_debug )
+ WAR << "Skip unknown node " << *reader_r << " in "<< *this << endl;
skipNode( reader_r );
}
}
@@ -384,6 +388,10 @@
: _pimpl( new Impl( name_r, mode_r ) )
{}
+ ParseDef::ParseDef( const std::string & name_r, Mode mode_r, const shared_ptr<ParseDefConsume> & target_r )
+ : _pimpl( new Impl( name_r, mode_r, target_r ) )
+ {}
+
ParseDef::ParseDef( const shared_ptr<Impl> & pimpl_r )
: _pimpl( pimpl_r )
{}
Modified: trunk/libzypp/zypp/parser/xml/ParseDef.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/xml/ParseDef.h?rev=11563&r1=11562&r2=11563&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/xml/ParseDef.h (original)
+++ trunk/libzypp/zypp/parser/xml/ParseDef.h Fri Oct 31 18:03:28 2008
@@ -140,6 +140,7 @@
public:
ParseDef( const std::string & name_r, Mode mode_r );
+ ParseDef( const std::string & name_r, Mode mode_r, const shared_ptr<ParseDefConsume> & target_r );
virtual ~ParseDef();
@@ -166,6 +167,9 @@
ParseDef & addNode( const std::string & name_r, Mode mode_r )
{ ParseDef tmp( name_r, mode_r ); return addNode( tmp ); }
+ ParseDef & addNode( const std::string & name_r, Mode mode_r, const shared_ptr<ParseDefConsume> & target_r )
+ { ParseDef tmp( name_r, mode_r, target_r ); return addNode( tmp ); }
+
/** Add subnode definition.
* \see addNode.
*/
@@ -175,6 +179,9 @@
ParseDef & operator()( const std::string & name_r, Mode mode_r )
{ return addNode( name_r, mode_r ); }
+ ParseDef & operator()( const std::string & name_r, Mode mode_r, const shared_ptr<ParseDefConsume> & target_r )
+ { return addNode( name_r, mode_r, target_r ); }
+
/** Get subnode by name.
* \throws ParseDefBuildException if no subnode with \a name_r exists.
*/
Modified: trunk/libzypp/zypp/parser/xml/ParseDefConsume.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/xml/ParseDefConsume.cc?rev=11563&r1=11562&r2=11563&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/xml/ParseDefConsume.cc (original)
+++ trunk/libzypp/zypp/parser/xml/ParseDefConsume.cc Fri Oct 31 18:03:28 2008
@@ -117,7 +117,7 @@
void ParseDefConsumeRedirect::doneSubnode ( const Node & _node )
{
if ( _target )
- _target->startSubnode( _node );
+ _target->doneSubnode( _node );
}
///////////////////////////////////////////////////////////////////
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org