]> git.localhorst.tv Git - l2e.git/blob - src/loader/Loader.h
7717167e30361335b1cf1ac6478f5f39f6a7f8dc
[l2e.git] / src / loader / Loader.h
1 /*
2  * Loader.h
3  *
4  *  Created on: Sep 13, 2012
5  *      Author: holy
6  */
7
8 #ifndef LOADER_LOADER_H_
9 #define LOADER_LOADER_H_
10
11 #include "ObjectFile.h"
12 #include "TypeDescription.h"
13
14 namespace loader {
15
16 #include <map>
17 #include <string>
18 #include <vector>
19
20 class Loader {
21
22 public:
23         Loader() { }
24         ~Loader();
25
26 public:
27         void Load(const std::string &file);
28
29 private:
30         void LoadHeader(LoadedObjectFile &);
31         void LoadExports(LoadedObjectFile &);
32         void LinkExternals(LoadedObjectFile &);
33         void LoadImages(LoadedObjectFile &);
34         void LinkObjects(LoadedObjectFile &);
35         void LinkObject(LoadedObjectFile &, const TypeDescription &, char *object);
36
37 private:
38         std::map<std::string, LoadedObjectFile> objectFiles;
39         std::map<std::string, LoadedExport> exports;
40
41 };
42
43 }
44 #endif /* LOADER_LOADER_H_ */