APEX Framework: ModuleLoader.h Source File

NVIDIA APEX

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.