zypper port starts. zypp2 to zypp
[platform/upstream/libzypp.git] / devel / devel.ma / Parse.cc
index c49f3d3..2556a71 100644 (file)
 
 #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;
@@ -119,7 +126,69 @@ std::ostream & operator<<( std::ostream & str, const iostr::EachLine & obj )
 
 }
 
-/******************************************************************
+///////////////////////////////////////////////////////////////////
+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
@@ -129,42 +198,76 @@ int main( int argc, char * argv[] )
   //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" );