From 673829a9b7ce8dd87cd7a47d91545112e75ebf24 Mon Sep 17 00:00:00 2001 From: Michael Andres Date: Tue, 30 Mar 2010 15:29:39 +0200 Subject: [PATCH] backup --- devel/devel.ma/Main.cc | 84 +++++------------------ devel/devel.ma/Xml.cc | 181 +++++++++++++++++-------------------------------- zypp/RepoInfo.h | 12 +++- 3 files changed, 92 insertions(+), 185 deletions(-) diff --git a/devel/devel.ma/Main.cc b/devel/devel.ma/Main.cc index 57b989d..329e6ce 100644 --- a/devel/devel.ma/Main.cc +++ b/devel/devel.ma/Main.cc @@ -9,6 +9,7 @@ /////////////////////////////////////////////////////////////////// //static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" ); +//static const Pathname sysRoot( "/tmp/ToolScanRepos" ); static const Pathname sysRoot( "/" ); /////////////////////////////////////////////////////////////////// @@ -58,6 +59,12 @@ namespace zypp } } +std::ostream & operator<<( std::ostream & str, const sat::Solvable::SplitIdent & obj ) +{ + str << "{" << obj.ident() << "}{" << obj.kind() << "}{" << obj.name () << "}" << endl; + return str; +} + int main( int argc, char * argv[] ) try { --argc; @@ -65,79 +72,24 @@ try { zypp::base::LogControl::instance().logToStdErr(); INT << "===[START]==========================================" << endl; /////////////////////////////////////////////////////////////////// - - - DBG << Pathname("a\\b") << endl; - DBG << Pathname(".\\a/") << endl; - DBG << Pathname("/a\\b/c") << endl; - - INT << "===[END]============================================" << endl << endl; - zypp::base::LogControl::instance().logNothing(); - return 0; - - ::unsetenv( "ZYPP_CONF" ); - ZConfig::instance(); + if ( sysRoot == "/" ) + ::unsetenv( "ZYPP_CONF" ); + ZConfig::instance().setTextLocale( Locale("de_DE") ); ResPool pool( ResPool::instance() ); sat::Pool satpool( sat::Pool::instance() ); /////////////////////////////////////////////////////////////////// - dumpRange( WAR, satpool.multiversionBegin(), satpool.multiversionEnd() ) << endl; + dumpRange( WAR << "satpool.multiversion " , satpool.multiversionBegin(), satpool.multiversionEnd() ) << endl; TestSetup::LoadSystemAt( sysRoot, Arch_i586 ); /////////////////////////////////////////////////////////////////// - dumpRange( USR, satpool.reposBegin(), satpool.reposEnd() ) << endl; - USR << "pool: " << pool << endl; - - dumpRange( WAR, satpool.multiversionBegin(), satpool.multiversionEnd() ) << endl; - - ui::Selectable::Ptr sel( getSel( "test" ) ); - WAR << dump( sel ) << endl; - - DBG << sel->setStatus( ui::S_Update, ResStatus::USER ) << endl; - WAR << dump( sel ) << endl; - - DBG << sel->setStatus( ui::S_Del, ResStatus::USER ) << endl; - WAR << dump( sel ) << endl; + ui::Selectable::Ptr s( getSel( "libzypp" ) ); + MIL << s << endl; + DBG << s->setStatus( ui::S_Taboo ) << endl; + DBG << s->setStatus( ui::S_Protected ) << endl; + MIL << s << endl; + DBG << s->setStatus( ui::S_Update ) << endl; + MIL << s << endl; - DBG << sel->setStatus( ui::S_KeepInstalled, ResStatus::USER ) << endl; - WAR << dump( sel ) << endl; - - DBG << sel->pickInstall( *(++++sel->availableBegin()) ) << endl; - WAR << dump( sel ) << endl; - - DBG << sel->pickDelete( *(++sel->installedBegin()) ) << endl; - WAR << dump( sel ) << endl; - - DBG << sel->pickInstall( *(sel->installedBegin()) ) << endl; - WAR << dump( sel ) << endl; - - solve(); - WAR << dump( sel ) << endl; - pool::GetResolvablesToInsDel collect( pool, pool::GetResolvablesToInsDel::ORDER_BY_MEDIANR ); - - /////////////////////////////////////////////////////////////////// - INT << "===[END]============================================" << endl << endl; - zypp::base::LogControl::instance().logNothing(); - return 0; - { - PoolQuery q; - q.addAttribute( sat::SolvAttr::name, "open" ); - q.addKind( ResKind::patch ); - MIL << dump(q) << endl; - } - { - PoolQuery q; - q.addAttribute( sat::SolvAttr::name, "patch:yast2-samba-server" ); - MIL << dump(q) << endl; - } - - if ( 0 ) - { - getZYpp()->resolver()->addRequire( Capability("emacs") ); - solve(); - vdumpPoolStats( USR << "Transacting:"<< endl, - make_filter_begin(pool), - make_filter_end(pool) ) << endl; - } /////////////////////////////////////////////////////////////////// INT << "===[END]============================================" << endl << endl; diff --git a/devel/devel.ma/Xml.cc b/devel/devel.ma/Xml.cc index 717e2cb..170c035 100644 --- a/devel/devel.ma/Xml.cc +++ b/devel/devel.ma/Xml.cc @@ -1,55 +1,39 @@ -#include "Tools.h" - -extern "C" -{ -#include -#include -} #include -#include #include #include #include -#include - -#include #include +#include +#include -#include "zypp/base/Exception.h" -#include "zypp/base/InputStream.h" -#include "zypp/base/DefaultIntegral.h" -#include -#include -#include -#include -#include -#include -#include - -#include "zypp/parser/xml/Reader.h" +#include +//#include +//#include using namespace std; using namespace zypp; -/////////////////////////////////////////////////////////////////// - -static const Pathname sysRoot( "/Local/ROOT" ); +#include +using zypp::debug::Measure; /////////////////////////////////////////////////////////////////// -template - void ti( const _Cl & c ) +/** Helper to detect an objects type. */ +template void ti( const _Cl & c ) { SEC << __PRETTY_FUNCTION__ << endl; } -/////////////////////////////////////////////////////////////////// - -bool dump( xml::Reader & reader_r ) +bool noop( xml::Reader & reader_r ) { - MIL << *reader_r << endl; + return true; } +struct Noop +{ + bool operator()( xml::Reader & reader_r ) const + { return true; } +}; /////////////////////////////////////////////////////////////////// @@ -83,65 +67,33 @@ bool dumpNode( xml::Reader & reader_r ) /////////////////////////////////////////////////////////////////// -bool dumpEd( xml::Reader & reader_r ) +bool consume( xml::Reader & reader_r ) { - static int num = 5; - if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT - && reader_r->name() == "version" ) - { - MIL << *reader_r << endl; -#define _show(x) DBG << #x << " = " << reader_r->getAttribute( #x ) << endl - _show( rel ); - _show( ver ); - _show( epoch ); - WAR << Edition( reader_r->getAttribute( "ver" ).asString(), - reader_r->getAttribute( "rel" ).asString(), - reader_r->getAttribute( "epoch" ).asString() ) << endl; - --num; - } - return num; -} - -/////////////////////////////////////////////////////////////////// - -template - struct DumpDeps + switch ( reader_r->nodeType() ) { - DumpDeps( _OutputIterator result_r ) - : _result( result_r ) - {} - - bool operator()( xml::Reader & reader_r ) - { - if ( reader_r->nodeType() == XML_READER_TYPE_ELEMENT - && reader_r->prefix() == "rpm" - && reader_r->localName() == "entry" ) - { - string n( reader_r->getAttribute( "name" ).asString() ); - Rel op( reader_r->getAttribute( "flags" ).asString() ); - if ( op != Rel::ANY ) - { - n += " "; - n += op.asString(); - n += " "; - n += reader_r->getAttribute( "ver" ).asString(); - n += "-"; - n += reader_r->getAttribute( "rel" ).asString(); - } - *_result = n; - ++_result; - } - return true; - } + case XML_READER_TYPE_ELEMENT: + //MIL << *reader_r << endl; + for ( int i = 0; i < reader_r->attributeCount(); ++i ) + { + //MIL << " attr no " << i << " '" << reader_r->getAttributeNo( i ) << "'" << endl; + } + break; - _OutputIterator _result; - }; + case XML_READER_TYPE_ATTRIBUTE: + //WAR << *reader_r << endl; + break; -template - DumpDeps<_OutputIterator> dumpDeps( _OutputIterator result_r ) - { return DumpDeps<_OutputIterator>( result_r ); } + case XML_READER_TYPE_TEXT: + case XML_READER_TYPE_CDATA: + //DBG << *reader_r << endl; + break; -/////////////////////////////////////////////////////////////////// + default: + //ERR << *reader_r << endl; + break; + } + return true; +} /****************************************************************** ** @@ -150,45 +102,40 @@ template */ int main( int argc, char * argv[] ) { + --argc, ++argv; INT << "===[START]==========================================" << endl; - --argc; - ++argv; + bool verbose( true ); + Pathname input( "test.xml" ); + xml::Reader::ProcessNode consumer( consume ); - Pathname repodata; - if ( argc ) - { - repodata = *argv; - } - else - { - repodata = "/Local/FACTORY/repodata"; - repodata /= "primary.xml"; - } + if ( argc && !strcmp( *argv, "-q" ) ) + { + --argc, ++argv; + verbose = false; + } - if ( 1 ) + { + Measure m( "Parse all" ); + for ( ; argc; --argc, ++argv ) { - Measure m( "Parse" ); - xml::Reader reader( repodata ); - - switch ( 3 ) + input = *argv; + if( 0 ) + try { + Measure m( input.basename() ); +// zypp::base::LogControl::TmpLineWriter shutUp; + xml::Reader reader( input ); + if ( verbose ) + reader.foreachNodeOrAttribute( consumer ); + else + reader.foreachNode( consumer ); + } + catch ( const Exception & exp ) { - case 1: - reader.foreachNode( dumpNode ); - break; - case 2: - reader.foreachNodeOrAttribute( dumpNode ); - break; - case 3: - reader.foreachNode( dumpEd ); - break; - - default: - WAR << "NOP" << endl; - break; + INT << exp << endl << exp.historyAsString(); } } - + } INT << "===[END]============================================" << endl << endl; return 0; } diff --git a/zypp/RepoInfo.h b/zypp/RepoInfo.h index 37c4526..e832d4c 100644 --- a/zypp/RepoInfo.h +++ b/zypp/RepoInfo.h @@ -150,7 +150,7 @@ namespace zypp * located at the root of the media it is important to know the path * to the product directory relative to the media root. So a media * verifier can be set for that media. You may also read it as - * baseUrl = url to mount and path = path on the + * baseUrl = url to mount and path = path on the * mounted media. * * It is not mandatory, and the default is \c /. @@ -313,9 +313,17 @@ namespace zypp /** Return the locales the license is available for. * \ref Locale::noCode is included in case of \c license.txt which does * not specify a specific locale. - */ + */ LocaleSet getLicenseLocales() const; //@} + + /** \name Repository global unique id + * + * + */ + //@{ + //@} + public: /** * Write a human-readable representation of this RepoInfo object -- 2.7.4