#ifndef CORE_SCRIPTLOADER_H #define CORE_SCRIPTLOADER_H #include #include #include #include "NativeScriptApi.h" #include "ScriptInfo.h" #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #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** getScripts( ModuleHandle handle ); bool isModuleLoaded( std::string name ); void findScripts( std::set< Core::Scripting::ScriptInfo* >& scripts, const std::string& search ); }; } } #endif // CORE_SCRIPTLOADER_H