diff options
author | saturneric <[email protected]> | 2024-02-28 16:32:43 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-02-28 16:32:43 +0000 |
commit | 12d70e1792a5b1ff08d4b58fb49fb9e58d6551a8 (patch) | |
tree | 1b747d6a3a034814104df6f531077de9c03ecd53 /src/module/sdk/Basic.h | |
parent | feat: add user agent header when doing http request (diff) | |
download | GpgFrontend-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.h | 24 |
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 |