OceanBase Plugin Development Kit
OceanBase Plugin Development Kit
载入中...
搜索中...
未找到
ob_plugin_base.h
浏览该文件的文档.
1/*
2 * Copyright (c) 2023 OceanBase
3 * OceanBase is licensed under Mulan PubL v2.
4 * You can use this software according to the terms and conditions of the Mulan PubL v2.
5 * You may obtain a copy of Mulan PubL v2 at:
6 * http://license.coscl.org.cn/MulanPubL-2.0
7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10 * See the Mulan PubL v2 for more details.
11 */
12
13#pragma once
14
15#include <stdint.h>
16#include <stddef.h>
17
18#define OBP_PUBLIC_API __attribute__((visibility("default")))
19
20#ifdef __cplusplus
21#define OBP_PLUGIN_EXPORT extern "C" OBP_PUBLIC_API
22#else // __cplusplus
23#define OBP_PLUGIN_EXPORT OBP_PUBLIC_API
24#endif // __cplusplus
25
26#define OBP_STRINGIZE_(str) #str
27#define OBP_STRINGIZE(str) OBP_STRINGIZE_(str)
28
29#define OBP_DYNAMIC_PLUGIN_NAME_VAR _ob_plugin_name
30#define OBP_DYNAMIC_PLUGIN_API_VERSION_VAR _ob_plugin_interface_version
31#define OBP_DYNAMIC_PLUGIN_SIZEOF_VAR _ob_plugin_sizeof
32#define OBP_DYNAMIC_PLUGIN_PLUGIN_VAR _ob_plugin
33#define OBP_DYNAMIC_PLUGIN_BUILD_REVISION_VAR _ob_plugin_build_revision
34#define OBP_DYNAMIC_PLUGIN_BUILD_BRANCH_VAR _ob_plugin_build_branch
35#define OBP_DYNAMIC_PLUGIN_BUILD_DATE_VAR _ob_plugin_build_date
36#define OBP_DYNAMIC_PLUGIN_BUILD_TIME_VAR _ob_plugin_build_time
37
38#define OBP_DYNAMIC_PLUGIN_NAME_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_NAME_VAR)
39#define OBP_DYNAMIC_PLUGIN_API_VERSION_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_API_VERSION_VAR)
40#define OBP_DYNAMIC_PLUGIN_SIZEOF_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_SIZEOF_VAR)
41#define OBP_DYNAMIC_PLUGIN_PLUGIN_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_PLUGIN_VAR)
42#define OBP_DYNAMIC_PLUGIN_BUILD_REVISION_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_BUILD_REVISION_VAR)
43#define OBP_DYNAMIC_PLUGIN_BUILD_BRANCH_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_BUILD_BRANCH_VAR)
44#define OBP_DYNAMIC_PLUGIN_BUILD_DATE_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_BUILD_DATE_VAR)
45#define OBP_DYNAMIC_PLUGIN_BUILD_TIME_NAME OBP_STRINGIZE(OBP_DYNAMIC_PLUGIN_BUILD_TIME_VAR)
46
47#define OBP_BUILTIN_PLUGIN_VAR(name) ob_builtin_plugin_##name
48
49#ifndef BUILD_REVISION
50#define OBP_BUILD_REVISION ""
51#else
52#define OBP_BUILD_REVISION BUILD_REVISION
53#endif
54
55#ifndef BUILD_BRANCH
56#define OBP_BUILD_BRANCH ""
57#else
58#define OBP_BUILD_BRANCH BUILD_BRANCH
59#endif
60
61#define OBP_BUILD_DATE __DATE__
62#define OBP_BUILD_TIME __TIME__
63
69#define OBP_VERSION_FIELD_NUMBER 1000L
70
74typedef void * ObPluginDatum;
void * ObPluginDatum
Used for param type