X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FLoader.h;h=50876384d744b26e617cd8982a1ee282153b24c7;hb=0e7b9eca67383e45e04aa419cb783c92722f7801;hp=7717167e30361335b1cf1ac6478f5f39f6a7f8dc;hpb=d93a406fe997af6035ace4fa8720a5bde1743456;p=l2e.git diff --git a/src/loader/Loader.h b/src/loader/Loader.h index 7717167..5087638 100644 --- a/src/loader/Loader.h +++ b/src/loader/Loader.h @@ -1,21 +1,14 @@ -/* - * 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 #include -#include +#include + +namespace loader { class Loader { @@ -26,19 +19,26 @@ public: public: void Load(const std::string &file); + const std::map &Exports() const { return exports; } + private: - void LoadHeader(LoadedObjectFile &); - void LoadExports(LoadedObjectFile &); - void LinkExternals(LoadedObjectFile &); - void LoadImages(LoadedObjectFile &); - void LinkObjects(LoadedObjectFile &); - void LinkObject(LoadedObjectFile &, const TypeDescription &, char *object); + void LoadExports(char *src, Export *begin, Export *end); + void LoadExternals(char *src, External *begin, External *end); + void LoadImages(char *src, Image *begin, Image *end); + void LoadObjects(char *src, Object *begin, Object *end); + void LoadObject(char *src, char *dest, const TypeDescription &); + void LoadArrays(char *src, Array *begin, Array *end); + + void InitObjects(Object *begin, Object *end); + void InitObject(char *object, const TypeDescription &); + void InitArrays(Array *begin, Array *end); private: - std::map objectFiles; + std::map objectFiles; std::map exports; + std::map images; }; } -#endif /* LOADER_LOADER_H_ */ +#endif