The MyString type does not belong in an interface header. It's only used in one
file, so move its typedef locally.
Remove/move a bunch of misplaced #includes.
There's an unnecessary forward declaration of class snapshotStack.
#include <sys/types.h>
#include <sstream>
#include <cstring>
+#include <string>
#include <cassert>
+#include <vector>
+#include <utility>
#define MYBINARYNAME "model"
#define MYLIBRARYNAME "libmodel.so"
#define REPLACEPOS 6
#define PAGESIZE 4096
+typedef std::basic_string<char, std::char_traits<char>, MyAlloc<char> > MyString;
+
snapshotStack * snapshotObject;
/*This looks like it might leak memory... Subramanian should fix this. */
#define __SNAPINTERFACE_H
#include "snapshot.h"
#include "mymemory.h"
-#include <vector>
-#include <utility>
-#include <string>
-#include <map>
-#include <set>
#include "snapshot.h"
-#include "libthreads.h"
-
-class snapshotStack;
-typedef std::basic_string<char, std::char_traits<char>, MyAlloc<char> > MyString;
void SnapshotGlobalSegments();