]> git.ipfire.org Git - thirdparty/snapper.git/commitdiff
- internal restructuring
authorArvin Schnell <aschnell@suse.de>
Mon, 14 Feb 2011 11:46:32 +0000 (12:46 +0100)
committerArvin Schnell <aschnell@suse.de>
Mon, 14 Feb 2011 11:46:32 +0000 (12:46 +0100)
snapper/Factory.cc
snapper/Factory.h
snapper/File.cc
snapper/File.h
snapper/Snapper.cc
snapper/Snapshot.h

index e310164b6ca79ba28cb72f16f93f65598824dd8a..1b24d8a5957355409c0b6abc7fbb70f9c0929043 100644 (file)
@@ -41,14 +41,6 @@ namespace snapper
     }
 
 
-    Snapper*
-    getSnapper()
-    {
-       assert(haha.get());
-       return haha.get();
-    }
-
-
     void
     deleteSnapper(Snapper* s)
     {
index 97666f3f9d2a6c70e0cefb26916d955af2ac60a8..3eb3bdb19e9623deacfef23aca8ccecd0581c1d6 100644 (file)
  */
 
 
-#include "snapper/Snapper.h"
+#ifndef FACTORY_H
+#define FACTORY_H
 
 
 namespace snapper
 {
 
+    class Snapper;
+
+
     // Only one Snapper can be created at a time.
 
     Snapper* createSnapper();
@@ -33,3 +37,6 @@ namespace snapper
     void deleteSnapper(Snapper*);
 
 }
+
+
+#endif
index a5a3335fcd77c97a6063601a4a58a329d94a24f0..0d4bf4ef037499f7cd14c2ae9fd03fd0bccd3011 100644 (file)
 
 namespace snapper
 {
-    // TODO
-    Snapper* getSnapper();
-
-
-    inline Snapshots::const_iterator getSnapshot1() { return getSnapper()->getSnapshot1(); }
-    inline Snapshots::const_iterator getSnapshot2() { return getSnapper()->getSnapshot2(); }
-
 
     std::ostream& operator<<(std::ostream& s, const File& file)
     {
@@ -65,9 +58,11 @@ namespace snapper
 
     struct AppendHelper
     {
-       AppendHelper(vector<File>& entries) : entries(entries) {}
+       AppendHelper(const Snapper* snapper, vector<File>& entries)
+           : snapper(snapper), entries(entries) {}
        void operator()(const string& name, unsigned int status)
-           { entries.push_back(File(name, status)); }
+           { entries.push_back(File(snapper, name, status)); }
+       const Snapper* snapper;
        vector<File>& entries;
     };
 
@@ -75,24 +70,25 @@ namespace snapper
     void
     Files::create()
     {
-       y2mil("num1:" << getSnapshot1()->getNum() << " num2:" << getSnapshot2()->getNum());
+       y2mil("num1:" << snapper->getSnapshot1()->getNum() << " num2:" <<
+             snapper->getSnapshot2()->getNum());
 
-       if (getSnapper()->getCompareCallback())
-           getSnapper()->getCompareCallback()->start();
+       if (snapper->getCompareCallback())
+           snapper->getCompareCallback()->start();
 
 #if 1
-       cmpdirs_cb_t cb = AppendHelper(entries);
+       cmpdirs_cb_t cb = AppendHelper(snapper, entries);
 #else
-       cmpdirs_cb_t cb = [&entries](const string& name, unsigned int status) {
-           entries.push_back(File(name, status));
+       cmpdirs_cb_t cb = [&snapper, &entries](const string& name, unsigned int status) {
+           entries.push_back(File(snapper, name, status));
        };
 #endif
-       cmpDirs(getSnapshot1()->snapshotDir(), getSnapshot2()->snapshotDir(), cb);
+       cmpDirs(snapper->getSnapshot1()->snapshotDir(), snapper->getSnapshot2()->snapshotDir(), cb);
 
        sort(entries.begin(), entries.end());
 
-       if (getSnapper()->getCompareCallback())
-           getSnapper()->getCompareCallback()->stop();
+       if (snapper->getCompareCallback())
+           snapper->getCompareCallback()->stop();
 
        y2mil("found " << entries.size() << " lines");
     }
@@ -101,12 +97,13 @@ namespace snapper
     bool
     Files::load()
     {
-       y2mil("num1:" << getSnapshot1()->getNum() << " num2:" << getSnapshot2()->getNum());
+       y2mil("num1:" << snapper->getSnapshot1()->getNum() << " num2:" <<
+             snapper->getSnapshot2()->getNum());
 
-       assert(!getSnapshot1()->isCurrent() && !getSnapshot2()->isCurrent());
+       assert(!snapper->getSnapshot1()->isCurrent() && !snapper->getSnapshot2()->isCurrent());
 
-       string input = getSnapshot2()->baseDir() + "/filelist-" +
-           decString(getSnapshot1()->getNum()) + ".txt";
+       string input = snapper->getSnapshot2()->baseDir() + "/filelist-" +
+           decString(snapper->getSnapshot1()->getNum()) + ".txt";
 
        FILE* file = fopen(input.c_str(), "r");
        if (file == NULL)
@@ -124,7 +121,7 @@ namespace snapper
 
            string name = string(line, 5, strlen(line) - 6);
 
-           File file(name, stringToStatus(string(line, 0, 4)));
+           File file(snapper, name, stringToStatus(string(line, 0, 4)));
            entries.push_back(file);
        }
 
@@ -143,12 +140,12 @@ namespace snapper
     bool
     Files::save()
     {
-       y2mil("num1:" << getSnapshot1()->getNum() << " num2:" << getSnapshot2()->getNum());
+       y2mil("num1:" << snapper->getSnapshot1()->getNum() << " num2:" << snapper->getSnapshot2()->getNum());
 
-       assert(!getSnapshot1()->isCurrent() && !getSnapshot2()->isCurrent());
+       assert(!snapper->getSnapshot1()->isCurrent() && !snapper->getSnapshot2()->isCurrent());
 
-       string output = getSnapshot2()->baseDir() + "/filelist-" +
-           decString(getSnapshot1()->getNum()) + ".txt";
+       string output = snapper->getSnapshot2()->baseDir() + "/filelist-" +
+           decString(snapper->getSnapshot1()->getNum()) + ".txt";
 
        char* tmp_name = (char*) malloc(output.length() + 12);
        strcpy(tmp_name, output.c_str());
@@ -177,7 +174,7 @@ namespace snapper
     {
        entries.clear();
 
-       if (getSnapshot1()->isCurrent() || getSnapshot2()->isCurrent())
+       if (snapper->getSnapshot1()->isCurrent() || snapper->getSnapshot2()->isCurrent())
        {
            create();
        }
@@ -260,16 +257,16 @@ namespace snapper
        switch (loc)
        {
            case LOC_PRE:
-               return getSnapshot1()->snapshotDir() + name;
+               return snapper->getSnapshot1()->snapshotDir() + name;
 
            case LOC_POST:
-               return getSnapshot2()->snapshotDir() + name;
+               return snapper->getSnapshot2()->snapshotDir() + name;
 
            case LOC_SYSTEM:
-               if (getSnapper()->rootDir() == "/")
+               if (snapper->rootDir() == "/")
                    return name;
                else
-                   return getSnapper()->rootDir() + name;
+                   return snapper->rootDir() + name;
        }
 
        return "error";
index 2d5faae960992dc2434b79e31ca92000871e1c1a..b65ac65c27cae95a46651f75cd73b8679ffe8dc7 100644 (file)
@@ -34,6 +34,9 @@ namespace snapper
     using std::vector;
 
 
+    class Snapper;
+
+
     enum StatusFlags
     {
        CREATED = 1, DELETED = 2, TYPE = 4, CONTENT = 8, PERMISSIONS = 16, USER = 32,
@@ -55,9 +58,9 @@ namespace snapper
     {
     public:
 
-       File(const string& name, unsigned int pre_to_post_status)
-           : name(name), pre_to_post_status(pre_to_post_status), pre_to_system_status(-1),
-             post_to_system_status(-1), rollback(false)
+       File(const Snapper* snapper, const string& name, unsigned int pre_to_post_status)
+           : snapper(snapper), name(name), pre_to_post_status(pre_to_post_status),
+             pre_to_system_status(-1), post_to_system_status(-1), rollback(false)
        {}
 
        const string& getName() const { return name; }
@@ -79,6 +82,8 @@ namespace snapper
 
     private:
 
+       const Snapper* snapper;
+
        string name;
 
        unsigned int pre_to_post_status;
@@ -102,7 +107,7 @@ namespace snapper
 
        friend class Snapper;
 
-       Files() {}
+       Files(const Snapper* snapper) : snapper(snapper) {}
 
        typedef vector<File>::iterator iterator;
        typedef vector<File>::const_iterator const_iterator;
@@ -126,6 +131,8 @@ namespace snapper
 
        bool doRollback();
 
+       const Snapper* snapper;
+
        vector<File> entries;
 
     };
index 7c3908db217cc349bae6caf2915e8deaa266e683..ea5c6a7cdb5438a463b108c82bed49b86d2dd71c 100644 (file)
@@ -41,7 +41,7 @@ namespace snapper
 
 
     Snapper::Snapper()
-       : snapshots(this), compare_callback(NULL)
+       : snapshots(this), files(this), compare_callback(NULL)
     {
        y2mil("Snapper constructor");
 
index 418a1957713ce3b430f20370e2c2d22849b750a8..87aed299a9c46b97eb63b2fdbdb20ab7cf989043 100644 (file)
@@ -48,7 +48,7 @@ namespace snapper
 
        friend class Snapshots;
 
-       Snapshot(const Snapper* s) : snapper(s), type(SINGLE), num(0), pre_num(0) {}
+       Snapshot(const Snapper* snapper) : snapper(snapper), type(SINGLE), num(0), pre_num(0) {}
 
        SnapshotType getType() const { return type; }
 
@@ -100,7 +100,7 @@ namespace snapper
 
        friend class Snapper;
 
-       Snapshots(const Snapper* s) : snapper(s) {}
+       Snapshots(const Snapper* snapper) : snapper(snapper) {}
 
        typedef list<Snapshot>::iterator iterator;
        typedef list<Snapshot>::const_iterator const_iterator;