Files
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

36 lines
834 B
C++

#ifndef _BUILD_NATIVE_POINTER_EMBED_H_
#define _BUILD_NATIVE_POINTER_EMBED_H_
#include "../js_internal/js_base.h"
namespace NSPointerObjectDeleters
{
using PointerObjectDeleter = void (*)(void* data);
void EmptyDeleter(void* data);
void FreeDeleter(void* data);
}
#define POINTER_DELETER(CLASS_NAME, NAME) void NAME(void* data) { CLASS_NAME* p = (CLASS_NAME*)data; delete data; }
using namespace NSJSBase;
class JS_DECL CPointerEmbedObject : public CJSEmbedObject
{
public:
void* Data;
private:
NSPointerObjectDeleters::PointerObjectDeleter Deleter;
public:
CPointerEmbedObject(void* data, NSPointerObjectDeleters::PointerObjectDeleter = nullptr);
void Free();
virtual ~CPointerEmbedObject();
virtual void* getObject() { return Data; }
JSSmart<CJSValue> createObject();
};
#endif // _BUILD_NATIVE_POINTER_EMBED_H_