aboutsummaryrefslogtreecommitdiffstats
path: root/src/module/sdk/Basic.h
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-02-28 16:32:43 +0000
committersaturneric <[email protected]>2024-02-28 16:32:43 +0000
commit12d70e1792a5b1ff08d4b58fb49fb9e58d6551a8 (patch)
tree1b747d6a3a034814104df6f531077de9c03ecd53 /src/module/sdk/Basic.h
parentfeat: add user agent header when doing http request (diff)
downloadGpgFrontend-12d70e1792a5b1ff08d4b58fb49fb9e58d6551a8.tar.gz
GpgFrontend-12d70e1792a5b1ff08d4b58fb49fb9e58d6551a8.zip
feat: upgrade module system
1. load module and resolve symbols at runtime 2. restrict sdk functions and structures to c style 3. add some core api to support it
Diffstat (limited to 'src/module/sdk/Basic.h')
-rw-r--r--src/module/sdk/Basic.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/module/sdk/Basic.h b/src/module/sdk/Basic.h
index 62a547b3..a232fd64 100644
--- a/src/module/sdk/Basic.h
+++ b/src/module/sdk/Basic.h
@@ -28,9 +28,31 @@
#pragma once
-namespace GpgFrontend::Module::SDK {
+#include "GpgFrontendModuleSDKExport.h"
+extern "C" {
+using CommandExeucteCallback = void (*)(void* data, int errcode,
+ const char* out, const char* err);
+using CommandExecuteContext = struct {
+ const char* cmd;
+ int32_t argc;
+ const char** argv;
+ CommandExeucteCallback cb;
+ void* data;
+};
+auto GPGFRONTEND_MODULE_SDK_EXPORT AllocateMemory(uint32_t size) -> void*;
+
+void GPGFRONTEND_MODULE_SDK_EXPORT FreeMemory(void*);
+
+void GPGFRONTEND_MODULE_SDK_EXPORT ExecuteCommandSync(const char* cmd,
+ int32_t argc,
+ const char** argv,
+ CommandExeucteCallback cb,
+ void* data);
+
+void GPGFRONTEND_MODULE_SDK_EXPORT ExecuteCommandBatchSync(
+ int32_t context_size, const CommandExecuteContext* context);
} \ No newline at end of file