Ceetron Result Calculator Framework
CRCPlugin.h
1 //##################################################################################################
2 //
3 // Ceetron Result Calculator Framework
4 //
5 // --------------------------------------------------------------------------------------------
6 // Copyright (C) 2019, Ceetron AS
7 //##################################################################################################
8 #pragma once
9 
10 #include "CRCBaseTypes.h"
11 #include "CRCVersion.h"
12 
14 
15 #define CRC_RET_SUCCESS 1
16 #define CRC_RET_FAIL 0
17 
18 
19 extern "C" {
20 
22 typedef CRCResultCalculator* (*CRC_CreateCalculatorFunc)();
23 
25 typedef void (*CRC_DestroyCalculatorFunc)(CRCResultCalculator* calcObjPtr);
26 
27 //==================================================================================================
32 //==================================================================================================
34 {
35  crc_int_t pluginApiMajorVer;
36  crc_int_t pluginApiMinorVer;
37  CRC_CreateCalculatorFunc createCalculatorFunc;
38  CRC_DestroyCalculatorFunc destroyCalculatorFunc;
39 };
40 
42 typedef int (*CRC_RegisterCalculatorFunc)(const char* calculatorIdString, const CRC_RegisterCalculatorParams* params);
43 
44 
47 typedef void (*CRC_LogFunc)(int level, const char* message);
48 
49 
51 typedef void (*CRC_SetPluginInfoFunc)(const char* key, const char* value);
52 
53 
54 //==================================================================================================
61 //==================================================================================================
63 {
64  crc_int_t pluginApiMajorVer;
65  crc_int_t pluginApiMinorVer;
66  CRC_RegisterCalculatorFunc registerCalculatorFunc;
67  CRC_LogFunc logFunc;
68  CRC_SetPluginInfoFunc setPluginInfoFunc;
69 };
70 
71 
72 // Type definition of the plugin exit function pointer (used by the plugin manager to tell plugins to cleanup before being unloaded)
73 typedef void (*CRC_PluginExitFunc)();
74 
75 
81 typedef CRC_PluginExitFunc (*CRC_PluginInitFunc)(const CRC_FrameworkServices* frameworkServices);
82 
83 
84 
85 // Make sure that CRC_BUILD_PLUGIN_DLL is defined when building the plugin DLL.
86 #ifdef WIN32
87  #ifdef CRC_BUILD_PLUGIN_DLL
88  #define CRC_PLUGIN_EXPORT __declspec(dllexport)
89  #else
90  #define CRC_PLUGIN_EXPORT __declspec(dllimport)
91  #endif
92 #else
93  #define CRC_PLUGIN_EXPORT
94 #endif
95 
96 
101 extern "C" CRC_PLUGIN_EXPORT CRC_PluginExitFunc initializeResultCalculatorPlugin(const CRC_FrameworkServices* frameworkServices);
102 
103 } // extern "C"
crc_int_t pluginApiMinorVer
Minor version of the framework plugin API.
Definition: CRCPlugin.h:65
Aggregates the services that the plugin framework provides to the plugin. This includes version of th...
Definition: CRCPlugin.h:62
crc_int_t pluginApiMinorVer
Minor version of the framework plugin API for which this plugin was written.
Definition: CRCPlugin.h:36
CRC_SetPluginInfoFunc setPluginInfoFunc
Function pointer for communicating plugin info.
Definition: CRCPlugin.h:68
CRCResultCalculator is the base class for result calculators that can be used in both desktop and clo...
Definition: CRCResultCalculator.h:25
Parameter struct utilized when registering result calculators.
Definition: CRCPlugin.h:33
crc_int_t pluginApiMajorVer
Major version of the framework plugin API for which this plugin was written.
Definition: CRCPlugin.h:35
CRC_DestroyCalculatorFunc destroyCalculatorFunc
Pointer to function that should be used to delete calculator instances.
Definition: CRCPlugin.h:38
CRC_CreateCalculatorFunc createCalculatorFunc
Pointer to factory function that should be used to create new calculator instances.
Definition: CRCPlugin.h:37
CRC_LogFunc logFunc
Function pointer for log function.
Definition: CRCPlugin.h:67
CRC_RegisterCalculatorFunc registerCalculatorFunc
Function for registering result calculators.
Definition: CRCPlugin.h:66
crc_int_t pluginApiMajorVer
Major version of the framework plugin API.
Definition: CRCPlugin.h:64