r5245@piscolita: duncan | 2007-05-06 17:48:39 +0200
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Sun, 6 May 2007 16:06:01 +0000 (16:06 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Sun, 6 May 2007 16:06:01 +0000 (16:06 +0000)
 more improvements

devel/devel.dmacvicar/testbed.cc
tests/parser/inifile/inidict_test.cc
zypp/parser/IniDict.cc
zypp/parser/IniDict.h

index 8f16e2faf0cc700ed017b52ed3ddbd7d5ecc91a9..dae3e72f8a0f17344ae8a0f95c26b95f6448cdbd 100644 (file)
@@ -26,14 +26,9 @@ int main(int argc, char **argv)
     {
       ZYpp::Ptr z = getZYpp();
     
-      Pathname dbpath = Pathname(getenv("PWD"));
-      
-      //RepositoryImpl_Ptr repositoryImpl(new CachedRepositoryImpl(dbpath));
-      //RepositoryFactory factory;
-      //Repository_Ref repository = factory.createFrom(repositoryImpl);
-      //ResStore dbres = repository.resolvables();
-      
-      //MIL << dbres.size() << " resolvables" << endl;
+      z->initializeTarget("/");
+      ResStore res = z->target()->resolvables();
+      MIL << res.size() << " resolvables" << endl;
 
     }
     catch ( const Exception &e )
index fc2b3317ff7e3cfc0c448a7f1a0b1082c637df83..eb623d002026a51259dc5f14ef3193ea4e921a95 100644 (file)
@@ -25,6 +25,13 @@ void ini_read_test(const string &dir)
 {
   InputStream is((Pathname(dir)+"/1.ini"));
   IniDict dict(is);
+
+  //MIL << dict["homedmacvicar"]["type"] << endl;
+
+  for ( IniDict::const_iterator it = dict.begin(); it != dict.end(); ++it )
+  {
+    MIL << (*it).first << endl;
+  }
 }
 
 test_suite*
index b3ac3362328cb83d0b9b85884c02594dae1b8162..250df464d26fc69b4b67592887e7e38201e4940f 100644 (file)
@@ -10,7 +10,7 @@
  *
 */
 #include <iostream>
-//#include "zypp/base/Logger.h"
+#include "zypp/base/Logger.h"
 #include <map>
 #include <string>
 #include "zypp/parser/IniDict.h"
@@ -53,7 +53,11 @@ namespace zypp
 
     void IniDict::consume( const std::string &section, const std::string &key, const std::string &value )
     {
-      _dict[section][key] = value;
+      //MIL << endl;
+      PropertySet keys = _dict[section];
+      keys[key] = value;
+      _dict[section] = keys;
+      //MIL << this->size() << endl;
     }
 
 
index 2274f20857ae3dfb665377e527407321299ac463..345569471c91b65f131afb829ed2e11c88c91cb5 100644 (file)
@@ -32,17 +32,26 @@ namespace zypp
     // CLASS NAME : IniDict
     //
     /**
+     * Parses a INI file and offers its structure as a
+     * dictionary.
      * 
      */
     class IniDict : public IniParser
     {
       friend std::ostream & operator<<( std::ostream & str, const IniDict & obj );
     public:
+      typedef std::map<std::string, std::string> PropertySet;
+      typedef std::map<std::string, PropertySet> ConfigSet;
+      typedef ConfigSet::const_iterator const_iterator;
+      
+      const_iterator begin() const { return _dict.begin(); }
+      const_iterator end() const { return _dict.end(); }
       /** Default ctor */
       IniDict( const InputStream &is );
       /** Dtor */
       ~IniDict();
 
+      
     public:
 
       /** Called when a section is found. */
@@ -51,7 +60,7 @@ namespace zypp
       virtual void consume( const std::string &section, const std::string &key, const std::string &value );
 
     private:
-      std::map<std::string, std::map<std::string, std::string> > _dict;
+      ConfigSet _dict;
     };
     ///////////////////////////////////////////////////////////////////