15 #ifndef MODULE_LOADER_H 16 #define MODULE_LOADER_H 18 #include "azure_c_shared_utility/macro_utils.h" 19 #include "azure_c_shared_utility/umock_c_prod.h" 47 typedef void(*pfModuleLoader_Unload)(
const struct MODULE_LOADER_TAG* loader, MODULE_LIBRARY_HANDLE handle);
50 typedef void*(*pfModuleLoader_ParseEntrypointFromJson)(
const struct MODULE_LOADER_TAG* loader,
const JSON_Value* json);
51 typedef void(*pfModuleLoader_FreeEntrypoint)(
const struct MODULE_LOADER_TAG* loader,
void* entrypoint);
56 typedef void*(*pfModuleLoader_BuildModuleConfiguration)(
const struct MODULE_LOADER_TAG* loader,
const void* entrypoint,
const void* module_configuration);
57 typedef void(*pfModuleLoader_FreeModuleConfiguration)(
const struct MODULE_LOADER_TAG* loader,
const void* module_configuration);
64 pfModuleLoader_Load Load;
67 pfModuleLoader_Unload Unload;
70 pfModuleLoader_GetApi GetApi;
75 pfModuleLoader_ParseEntrypointFromJson ParseEntrypointFromJson;
78 pfModuleLoader_FreeEntrypoint FreeEntrypoint;
83 pfModuleLoader_ParseConfigurationFromJson ParseConfigurationFromJson;
86 pfModuleLoader_FreeConfiguration FreeConfiguration;
91 pfModuleLoader_BuildModuleConfiguration BuildModuleConfiguration;
94 pfModuleLoader_FreeModuleConfiguration FreeModuleConfiguration;
101 #define MODULE_LOADER_TYPE_VALUES \ 136 #define MODULE_LOADER_RESULT_VALUES \ 137 MODULE_LOADER_SUCCESS, \ 151 const JSON_Value*, json
245 #endif // MODULE_LOADER_H MOCKABLE_FUNCTION(, MODULE_LOADER_RESULT, ModuleLoader_ParseBaseConfigurationFromJson, MODULE_LOADER_BASE_CONFIGURATION *, configuration, const JSON_Value *, json)
Utility function for parsing a JSON object that has a property called "binding.path" into a MODULE_LO...
struct MODULE_LOADER_TAG MODULE_LOADER
MODULE_LOADER_TYPE type
The module loader type from the MODULE_LOADER_TYPE enumeration.
Definition: module_loader.h:122
Function table for loading modules into a gateway.
Definition: module_loader.h:60
void * MODULE_LIBRARY_HANDLE
handle for a module library
Definition: module_loader.h:30
Definition: module_loader.h:39
const char * name
The module loader's name used to reference this loader when using JSON to configure a gateway...
Definition: module_loader.h:126
struct MODULE_LOADER_API_TAG MODULE_LOADER_API
Function table for loading modules into a gateway.
enum MODULE_LOADER_RESULT_TAG MODULE_LOADER_RESULT
Enumeration describing the result of module loader APIs.
MODULE_LOADER_BASE_CONFIGURATION * configuration
The module loader's' configuration. For example the Java language binding loader might store JVM runt...
Definition: module_loader.h:130
struct MODULE_LOADER_BASE_CONFIGURATION_TAG MODULE_LOADER_BASE_CONFIGURATION
Definition: module_loader.h:119
Structure returned by Module_GetApi containing the API version. By convention, the module returns a c...
Definition: module.h:135
STRING_HANDLE binding_path
The path to the native binding module.
Definition: module_loader.h:43
enum MODULE_LOADER_TYPE_TAG MODULE_LOADER_TYPE
Enumeration listing all supported module loaders.
Interface for modules which communicate with other modules via a message broker.
MODULE_LOADER_API * api
The module loader's' API implementation.
Definition: module_loader.h:133