ModuleLoader.h
00001 /* 00002 * Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. 00003 * 00004 * NVIDIA CORPORATION and its licensors retain all intellectual property 00005 * and proprietary rights in and to this software, related documentation 00006 * and any modifications thereto. Any use, reproduction, disclosure or 00007 * distribution of this software and related documentation without an express 00008 * license agreement from NVIDIA CORPORATION is strictly prohibited. 00009 */ 00010 00011 00012 #ifndef MODULE_LOADER_H 00013 #define MODULE_LOADER_H 00014 00015 #include "Apex.h" 00016 #include "PsHashMap.h" 00017 00018 namespace nvidia 00019 { 00020 namespace apex 00021 { 00022 00033 class ModuleLoader : public Module 00034 { 00035 public: 00037 virtual Module* loadModule(const char* name) = 0; 00038 00047 virtual void loadModules(const char** names, uint32_t size, Module** modules = 0) = 0; 00048 00050 virtual void loadAllModules() = 0; 00051 00053 virtual void loadAllLegacyModules() = 0; 00054 00056 virtual uint32_t getLoadedModuleCount() const = 0; 00057 00059 virtual Module* getLoadedModule(uint32_t idx) const = 0; 00060 00062 virtual Module* getLoadedModule(const char* name) const = 0; 00063 00065 virtual void releaseModule(uint32_t idx) = 0; 00066 00068 virtual void releaseModule(const char* name) = 0; 00069 00071 virtual void releaseModules(Module** modules, uint32_t size) = 0; 00072 00079 virtual void releaseModule(Module* module) = 0; 00080 00087 virtual void releaseModules(const char** names, uint32_t size) = 0; 00088 00090 virtual void releaseLoadedModules() = 0; 00091 00093 typedef shdfnd::HashMap<const char*, nvidia::apex::ApexCreateError> ModuleNameErrorMap; 00094 00096 virtual const ModuleNameErrorMap& getLoadedModulesErrors() const = 0; 00097 }; 00098 00099 #if !defined(_USRDLL) 00100 00104 void instantiateModuleLoader(); 00105 #endif 00106 00107 } 00108 } // end namespace nvidia::apex 00109 00110 #endif // MODULE_LOADER_H
Generated on Fri Dec 15 2017 13:58:35 Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.