#ifndef SAPPHIRE_SCRIPTLOADER_H #define SAPPHIRE_SCRIPTLOADER_H #include #include "NativeScriptApi.h" #include "ScriptInfo.h" #include #ifdef _WIN32 #include typedef HMODULE ModuleHandle; #else #include typedef void* ModuleHandle; #endif namespace Core { namespace Scripting { class ScriptLoader { protected: std::unordered_map< std::string, ScriptInfo* > m_scriptMap; bool unloadModule( ModuleHandle ); public: ScriptLoader(); const std::string getModuleExtension(); ScriptInfo* loadModule( const std::string& ); bool unloadScript( ScriptInfo* ); bool unloadScript( ModuleHandle ); ScriptInfo* getScriptInfo( std::string name ); ScriptObject* getScriptObject(ModuleHandle handle); bool isModuleLoaded( std::string name ); }; } } #endif //SAPPHIRE_SCRIPTLOADER_H