#include "zypp/parser/tagfile/TagFileParser.h"
#include "zypp/parser/TagParser.h"
+#include "zypp/parser/susetags/PackagesFileReader.h"
+#include "zypp/parser/susetags/PackagesLangFileReader.h"
+#include "zypp/parser/susetags/PatternFileReader.h"
+#include "zypp/parser/susetags/ContentFileReader.h"
+#include "zypp/parser/susetags/RepoIndex.h"
+
+#include "zypp/parser/susetags/RepoParser.h"
+#include "zypp/cache/CacheStore.h"
using namespace std;
using namespace zypp;
-using namespace zypp::ui;
using namespace zypp::functor;
using zypp::parser::tagfile::TagFileParser;
}
-/******************************************************************
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+
+using namespace zypp::parser::susetags;
+#include "zypp/cache/CacheStore.h"
+
+void consumeIndex( const parser::susetags::RepoIndex_Ptr & index_r )
+{
+ SEC << "[Index]" << index_r << endl;
+}
+
+void consumeProd( const data::Product_Ptr & prod_r )
+{
+ SEC << "[Prod]" << prod_r << endl;
+}
+
+void consumePkg( const data::Package_Ptr & pkg_r )
+{
+ //MIL << "[Pkg]" << pkg_r << endl;
+}
+
+void consumeSrcPkg( const data::SrcPackage_Ptr & pkg_r )
+{
+ //DBG << "[Src]" << pkg_r << endl;
+}
+
+void consumePat( const data::Pattern_Ptr & pat_r )
+{
+ MIL << "[Pat]" << pat_r << endl;
+}
+
+void pPackages( const Pathname & p )
+{
+ Measure x( p.basename() );
+ PackagesFileReader tp;
+ tp.setPkgConsumer( consumePkg );
+ tp.setSrcPkgConsumer( consumeSrcPkg );
+ tp.parse( p );
+}
+
+void pPackagesLang( const Pathname & p, const Locale & locale_r )
+{
+ Measure x( p.basename() );
+ PackagesLangFileReader tp;
+ tp.setLocale( locale_r );
+ tp.setPkgConsumer( consumePkg );
+ tp.setSrcPkgConsumer( consumeSrcPkg );
+ tp.parse( p );
+}
+
+void pPattern( const Pathname & p )
+{
+ Measure x( p.basename() );
+ PatternFileReader tp;
+ tp.setConsumer( consumePat );
+ tp.parse( p );
+}
+
+ /******************************************************************
**
** FUNCTION NAME : main
** FUNCTION TYPE : int
//zypp::base::LogControl::instance().logfile( "log.restrict" );
INT << "===[START]==========================================" << endl;
- //Pathname p( "lmd/suse/setup/descr/packages" );
- Pathname p( "packages" );
+ Pathname dbdir( "store" );
+ Pathname reporoot( "lmd" );
- if ( 1 )
+ cache::CacheStore store( dbdir );
+ data::RecordId repositoryId = store.lookupOrAppendRepository( Url("dir:///"), "/" );
{
- Pathname p( "packages" );
- Measure x( p.basename() );
- TagFileParser tp( (zypp::parser::ParserProgress::Ptr()) );
- tp.parse( p );
- }
+ Measure x( "XXXXXXXXXXXXX" );
- if ( 1 ) {
- Pathname p( "p" );
- Measure x( p.basename() );
- TagParser tp;
- tp.parse( p );
- }
- if ( 1 ) {
- Pathname p( "p.gz" );
- Measure x( p.basename() );
- TagParser tp;
- tp.parse( p );
- }
- if ( 1 ) {
- Pathname p( "packages" );
- Measure x( p.basename() );
- TagParser tp;
- tp.parse( p );
+ parser::susetags::RepoParser repo( repositoryId, store );
+ repo.parse( reporoot );
+
+ store.commit();
}
- if ( 1 ) {
- Pathname p( "packages.gz" );
- Measure x( p.basename() );
- TagParser tp;
- tp.parse( p );
+
+
+#if 0
+ ContentFileReader tp;
+ tp.setProductConsumer( consumeProd );
+ tp.setRepoIndexConsumer( consumeIndex );
+ //tp.setSrcPkgConsumer( consumeSrcPkg );
+ tp.parse( p );
+
+
+ //try
+ {
+ //Pathname dbdir( "/Local/ma/zypp-TRUNK/BUILD/libzypp/devel/devel.ma/store" );
+
+
+ Pathname dbdir( "store" );
+ Pathname metadir( "lmd" );
+
+ cache::CacheStore store( dbdir );
+ data::RecordId repositoryId = store.lookupOrAppendRepository( Url("http://www.google.com"), "/" );
+
+ RepoParser( metadir, repositoryId, store );
+
}
+ try
+ {
+ ZYpp::Ptr z = getZYpp();
+
+ Pathname dbfile( "data.db" );
+ cache::CacheStore store(getenv("PWD"));
+
+ data::RecordId repository_id = store.lookupOrAppendRepository( Url("http://www.google.com"), "/");
+
+ PackagesParser parser( repository_id, store);
+ Measure m;
+ parser.start(argv[1], &progress_function);
+ m.elapsed();
+ }
+ catch ( const Exception &e )
+ {
+ cout << "ups! " << e.msg() << std::endl;
+ }
+#endif
+
+ INT << "===[END]============================================" << endl << endl;
+ zypp::base::LogControl::instance().logNothing();
+ return 0;
+
+ Pathname proot( "lmd/suse/setup/descr" );
+
+ pPackages( proot/"packages" );
+ //pPackages( proot/"packages.gz" );
+ pPackagesLang( proot/"packages.de", Locale("de") );
+ //pPackagesLang( proot/"packages.de.gz", Locale("de") );
+ pPattern( proot/"base-10.3-30.x86_64.pat" );
+
if ( 0 )
{
Measure x( "lmd.idx" );