#define __SNAPINTERFACE_H
#include "snapshot.h"
#include "mymemory.h"
-#include <vector>
-#include <utility>
-#include <string>
-typedef std::basic_string< char, std::char_traits< char >, MyAlloc< char > > MyString;
-namespace snapshot_utils{
- std::vector< std::pair< void *, size_t >, MyAlloc< std::pair< void *, size_t > > > ReturnGlobalSegmentsToSnapshot();
+#include "snapshot.h"
+
+void SnapshotGlobalSegments();
+
+struct stackEntry {
+ struct stackEntry *next;
+ snapshot_id snapshotid;
+ int index;
+};
+
+class SnapshotStack {
+ public:
+ MEMALLOC
+ SnapshotStack( );
+ ~SnapshotStack();
+ int backTrackBeforeStep(int seq_index);
+ void snapshotStep(int seq_index);
+
+ private:
+ struct stackEntry * stack;
};
+
+/* Not sure what it even means to have more than one snapshot object,
+ so let's just make a global reference to it.*/
+
+extern SnapshotStack * snapshotObject;
#endif