26#define OBP_AUTHOR_OCEANBASE "OceanBase Corporation"
32#define OBP_PLUGIN_API_VERSION OBP_MAKE_VERSION(0, 1, 0)
37#define OBP_PLUGIN_API_VERSION_CURRENT OBP_PLUGIN_API_VERSION
39#ifdef OBP_DYNAMIC_PLUGIN
41#define OBP_DECLARE_PLUGIN_(name) \
42 OBP_PLUGIN_EXPORT const char *OBP_DYNAMIC_PLUGIN_NAME_VAR = OBP_STRINGIZE(name); \
43 OBP_PLUGIN_EXPORT int64_t OBP_DYNAMIC_PLUGIN_API_VERSION_VAR = OBP_PLUGIN_API_VERSION_CURRENT; \
44 OBP_PLUGIN_EXPORT const char *OBP_DYNAMIC_PLUGIN_BUILD_REVISION_VAR = OBP_BUILD_REVISION; \
45 OBP_PLUGIN_EXPORT const char *OBP_DYNAMIC_PLUGIN_BUILD_BRANCH_VAR = OBP_BUILD_BRANCH; \
46 OBP_PLUGIN_EXPORT const char *OBP_DYNAMIC_PLUGIN_BUILD_DATE_VAR = OBP_BUILD_DATE; \
47 OBP_PLUGIN_EXPORT const char *OBP_DYNAMIC_PLUGIN_BUILD_TIME_VAR = OBP_BUILD_TIME; \
48 OBP_PLUGIN_EXPORT int64_t OBP_DYNAMIC_PLUGIN_SIZEOF_VAR = sizeof(struct _ObPlugin); \
49 OBP_PLUGIN_EXPORT ObPlugin OBP_DYNAMIC_PLUGIN_PLUGIN_VAR =
54#define OBP_DECLARE_PLUGIN_(name) \
55 OBP_PLUGIN_EXPORT ObPlugin OBP_BUILTIN_PLUGIN_VAR(name) =
74#define OBP_DECLARE_PLUGIN(name) \
75 OBP_DECLARE_PLUGIN_(name)
81#define OBP_DECLARE_PLUGIN_END
108#define OBP_LICENSE_GPL "GPL"
109#define OBP_LICENSE_BSD "BSD"
110#define OBP_LICENSE_MIT "MIT"
111#define OBP_LICENSE_APACHE_V2 "Apache 2.0"
112#define OBP_LICENSE_MULAN_PUBL_V2 "Mulan PubL v2"
113#define OBP_LICENSE_MULAN_PSL_V2 "Mulan PSL v2"
127#define OBP_MAKE_VERSION(major, minor, patch) \
128 ((major) * OBP_VERSION_FIELD_NUMBER * OBP_VERSION_FIELD_NUMBER + (minor) * OBP_VERSION_FIELD_NUMBER + (patch))
OBP_PUBLIC_API ObPlugin * obp_param_plugin(ObPluginParamPtr param)
get the struct ObPlugin from the parameter
OBP_PUBLIC_API ObPluginDatum obp_param_plugin_user_data(ObPluginParamPtr param)
get the plugin instance specific(user data) from the parameter
enum OBP_PUBLIC_API ObPluginType
Plugin types
OBP_PLUGIN_TYPE_MAX
external table data resource
OBP_PUBLIC_API void obp_param_set_plugin_user_data(ObPluginParamPtr param, ObPluginDatum plugin_spec)
set the plugin instance specific(user data) in the parameter
uint64_t ObPluginVersion
The version type
ObPluginDatum ObPluginParamPtr
@NOTE all API should be declared as C interface
OBP_PLUGIN_TYPE_FT_PARSER
fulltext parser plugin
void * ObPluginDatum
Used for param type
ob plugin description structure
const char * license
The license of the plugin.
ObPluginVersion version
library version for the plugin