--- /dev/null
+/*
+ * Loader.h
+ *
+ * Created on: Sep 13, 2012
+ * Author: holy
+ */
+
+#ifndef LOADER_LOADER_H_
+#define LOADER_LOADER_H_
+
+#include "ObjectFile.h"
+#include "TypeDescription.h"
+
+namespace loader {
+
+#include <map>
+#include <string>
+#include <vector>
+
+class Loader {
+
+public:
+ Loader() { }
+ ~Loader();
+
+public:
+ void Load(const std::string &file);
+
+private:
+ void LoadHeader(LoadedObjectFile &);
+ void LoadExports(LoadedObjectFile &);
+ void LinkExternals(LoadedObjectFile &);
+ void LoadImages(LoadedObjectFile &);
+ void LinkObjects(LoadedObjectFile &);
+ void LinkObject(LoadedObjectFile &, const TypeDescription &, char *object);
+
+private:
+ std::map<std::string, LoadedObjectFile> objectFiles;
+ std::map<std::string, LoadedExport> exports;
+
+};
+
+}
+#endif /* LOADER_LOADER_H_ */