From 78ab91bc0a4c428a140f0ba4a51ef5d33e121087 Mon Sep 17 00:00:00 2001 From: kolegovilya Date: Tue, 3 Dec 2024 16:00:30 +0300 Subject: [PATCH 1/3] milestone 1 --- arkoala/framework/native/src/SerializerBase.h | 1 + .../src/generated/arkoala_api_generated.h | 7 +++++++ interop/src/cpp/common-interop.cc | 20 +++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/arkoala/framework/native/src/SerializerBase.h b/arkoala/framework/native/src/SerializerBase.h index ab9bd8fcc..2f75f090a 100644 --- a/arkoala/framework/native/src/SerializerBase.h +++ b/arkoala/framework/native/src/SerializerBase.h @@ -189,6 +189,7 @@ public: void writeBuffer(Ark_Buffer buffer) { writeInt64((Ark_Int64)buffer.data); writeInt64(buffer.length); + writeInt64((Ark_Int64)buffer.cleanup); } }; diff --git a/arkoala/framework/native/src/generated/arkoala_api_generated.h b/arkoala/framework/native/src/generated/arkoala_api_generated.h index 292b317ae..6cd38b202 100644 --- a/arkoala/framework/native/src/generated/arkoala_api_generated.h +++ b/arkoala/framework/native/src/generated/arkoala_api_generated.h @@ -69,6 +69,7 @@ typedef struct Ark_Buffer { void* data; int64_t length; + void (*cleanup)(void*); } Ark_Buffer; typedef float Ark_Float32; @@ -194,6 +195,12 @@ typedef struct Ark_CallbackResource { void (*release)(Ark_Int32 resourceId); } Ark_CallbackResource; +typedef struct Ark_CallbackNativeResource { + void* resourceId; + void (*hold)(void* resourceId); + void (*release)(void* resourceId); +} Ark_CallbackNativeResource; + typedef struct Array_String Array_String; typedef struct Opt_Array_String Opt_Array_String; typedef struct Ark_Resource Ark_Resource; diff --git a/interop/src/cpp/common-interop.cc b/interop/src/cpp/common-interop.cc index 274577fd1..034142570 100644 --- a/interop/src/cpp/common-interop.cc +++ b/interop/src/cpp/common-interop.cc @@ -54,6 +54,26 @@ napi_value getKoalaNapiCallbackDispatcher() { } return (napi_value)g_koalaNapiCallbackDispatcher.Value(); } + +Napi::Value _impl_MaterializeBuffer(Napi::Env env, Napi::Value value) { + Napi::Object obj = value.As(); + bool isLossless = false; + void* mem = (void*)obj.Get("pointer").As().Int64Value(&isLossless); + int64_t length = obj.Get("length").As().Int64Value(); + + return Napi::ArrayBuffer::New(env, mem, length); +} + +Napi::Value Node_MaterializeBuffer(const Napi::CallbackInfo& info) { + NAPI_ASSERT_INDEX(info, 0, info.Env().Undefined()); + return _impl_MaterializeBuffer(info.Env(), info[0]); +} + +__attribute__((constructor)) +static void __init_MaterializeBuffer() { + Exports::getInstance()->addImpl("_MaterializeBuffer", Node_MaterializeBuffer); \ +} + #endif #ifdef KOALA_ETS_NAPI -- Gitee From a7c0dce9f2ee2636cadfb2a13255f56dcd03e125 Mon Sep 17 00:00:00 2001 From: kolegovilya Date: Tue, 3 Dec 2024 18:21:55 +0300 Subject: [PATCH 2/3] second milestone --- arkoala/framework/native/src/SerializerBase.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arkoala/framework/native/src/SerializerBase.h b/arkoala/framework/native/src/SerializerBase.h index 2f75f090a..75e14c676 100644 --- a/arkoala/framework/native/src/SerializerBase.h +++ b/arkoala/framework/native/src/SerializerBase.h @@ -187,9 +187,9 @@ public: } void writeBuffer(Ark_Buffer buffer) { - writeInt64((Ark_Int64)buffer.data); + writePointer((void*)buffer.data); writeInt64(buffer.length); - writeInt64((Ark_Int64)buffer.cleanup); + writePointer((void*)buffer.cleanup); } }; -- Gitee From e0add00547843c49e55be6a47611213ee48ea57a Mon Sep 17 00:00:00 2001 From: kolegovilya Date: Tue, 3 Dec 2024 18:27:49 +0300 Subject: [PATCH 3/3] removed experimnet entity --- .../framework/native/src/generated/arkoala_api_generated.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/arkoala/framework/native/src/generated/arkoala_api_generated.h b/arkoala/framework/native/src/generated/arkoala_api_generated.h index 6cd38b202..415c0e37e 100644 --- a/arkoala/framework/native/src/generated/arkoala_api_generated.h +++ b/arkoala/framework/native/src/generated/arkoala_api_generated.h @@ -195,12 +195,6 @@ typedef struct Ark_CallbackResource { void (*release)(Ark_Int32 resourceId); } Ark_CallbackResource; -typedef struct Ark_CallbackNativeResource { - void* resourceId; - void (*hold)(void* resourceId); - void (*release)(void* resourceId); -} Ark_CallbackNativeResource; - typedef struct Array_String Array_String; typedef struct Opt_Array_String Opt_Array_String; typedef struct Ark_Resource Ark_Resource; -- Gitee