Refactoring

This commit is contained in:
Oleg Korshul
2023-06-10 13:57:33 +03:00
parent 0d77b62c2d
commit 6590643894
12 changed files with 140 additions and 171 deletions

View File

@ -2,7 +2,7 @@
#include "./ZipEmbed.h"
//#include "./TextMeasurerEmbed.h"
//#include "./MemoryStreamEmbed.h"
#include "./MemoryStreamEmbed.h"
#include "./HashEmbed.h"
namespace NSJSBase
@ -10,8 +10,8 @@ namespace NSJSBase
void CreateDefaults()
{
CJSContext::Embed<CZipEmbed>();
CJSContext::Embed<CMemoryStreamEmbed>();
// CTextMeasurerEmbed::CreateObjectInContext("CreateNativeTextMeasurer", context);
// CMemoryStreamEmbed::CreateObjectInContext("CreateNativeMemoryStream", context);
CJSContext::Embed<CHashEmbed>();
}
}

View File

@ -29,7 +29,7 @@ public:
JSSmart<CJSValue> WriteString(JSSmart<CJSValue> value);
JSSmart<CJSValue> WriteString2(JSSmart<CJSValue> value);
static void CreateObjectInContext(const std::string& name, JSSmart<CJSContext> context);
DECLARE_EMBED_METHODS
};
#endif // _BUILD_NATIVE_MEMORYSTREAM_EMBED_H_

View File

@ -30,12 +30,12 @@ public:
JSSmart<CJSValue> CheckNextChange();
JSSmart<CJSValue> GetCountChanges();
JSSmart<CJSValue> GetChangesFile(JSSmart<CJSValue> index);
JSSmart<CJSValue> Save_AllocNative(JSSmart<CJSValue> nLen);
JSSmart<CJSValue> Save_ReAllocNative(JSSmart<CJSValue> pos, JSSmart<CJSValue> len);
/*[noexport]*/JSSmart<CJSValue> Save_AllocNative(JSSmart<CJSValue> nLen);
/*[noexport]*/JSSmart<CJSValue> Save_ReAllocNative(JSSmart<CJSValue> pos, JSSmart<CJSValue> len);
JSSmart<CJSValue> Save_End(JSSmart<CJSValue> pos, JSSmart<CJSValue> len);
JSSmart<CJSValue> AddImageInChanges(JSSmart<CJSValue> img);
JSSmart<CJSValue> ConsoleLog(JSSmart<CJSValue> message);
JSSmart<CJSValue> SaveChanges(JSSmart<CJSValue> sParam, JSSmart<CJSValue> nDeleteIndex, JSSmart<CJSValue> nCount);
/*[noexport]*/JSSmart<CJSValue> SaveChanges(JSSmart<CJSValue> sParam, JSSmart<CJSValue> nDeleteIndex, JSSmart<CJSValue> nCount);
JSSmart<CJSValue> zipOpenFile(JSSmart<CJSValue> name);
JSSmart<CJSValue> zipOpenFileBase64(JSSmart<CJSValue> name);
JSSmart<CJSValue> zipGetFileAsString(JSSmart<CJSValue> name);
@ -45,7 +45,6 @@ public:
JSSmart<CJSValue> GetImagesPath();
JSSmart<CJSValue> GetImageOriginalSize(JSSmart<CJSValue> sUrl);
static void CreateObjectInContext(const std::string& name, JSSmart<CJSContext> context);
static void CreateObjectBuilderInContext(const std::string& name, JSSmart<CJSContext> context);
};

View File

@ -1,4 +1,5 @@
#include "./TextMeasurerEmbed.h"
#include "./PointerEmbed.h"
#include "./../../fontengine/TextShaper.h"
#define RAW_POINTER(value) ((CPointerEmbedObject*)value->toObjectSmart()->getNative())->Data

View File

@ -2,7 +2,6 @@
#define _BUILD_NATIVE_TEXT_MEASURER_EMBED_H_
#include "../js_internal/js_base.h"
#include "./PointerEmbed.h"
#if defined(__ANDROID__) || defined(_IOS)
#define SUPPORT_HARFBUZZ_SHAPER

View File

@ -1,46 +0,0 @@
#include "../MemoryStreamEmbed.h"
#include "../../js_internal/jsc/jsc_base.h"
@protocol IJSCMemoryStream <JSExport>
-(JSValue*) Copy : (JSValue*)value : (JSValue*)pos : (JSValue*)len;
-(JSValue*) ClearNoAttack;
-(JSValue*) WriteByte : (JSValue*)value;
-(JSValue*) WriteBool : (JSValue*)value;
-(JSValue*) WriteLong : (JSValue*)value;
-(JSValue*) WriteDouble : (JSValue*)value;
-(JSValue*) WriteDouble2 : (JSValue*)value;
-(JSValue*) WriteStringA : (JSValue*)value;
-(JSValue*) WriteString : (JSValue*)value;
-(JSValue*) WriteString2 : (JSValue*)value;
@end
@interface CJSCMemoryStream : NSObject<IJSCMemoryStream, JSEmbedObjectProtocol>
{
@public
CMemoryStreamEmbed* m_internal;
}
@end
@implementation CJSCMemoryStream
EMBED_OBJECT_WRAPPER_METHODS(CMemoryStreamEmbed)
FUNCTION_WRAPPER_JS_3(Copy, Copy)
FUNCTION_WRAPPER_JS(ClearNoAttack, ClearNoAttack)
FUNCTION_WRAPPER_JS_1(WriteByte, WriteByte)
FUNCTION_WRAPPER_JS_1(WriteBool, WriteBool)
FUNCTION_WRAPPER_JS_1(WriteLong, WriteLong)
FUNCTION_WRAPPER_JS_1(WriteDouble, WriteDouble)
FUNCTION_WRAPPER_JS_1(WriteDouble2, WriteDouble2)
FUNCTION_WRAPPER_JS_1(WriteStringA, WriteStringA)
FUNCTION_WRAPPER_JS_1(WriteString, WriteString)
FUNCTION_WRAPPER_JS_1(WriteString2, WriteString2)
@end
void CMemoryStreamEmbed::CreateObjectInContext(const std::string &name, JSSmart<CJSContext> context)
{
context->m_internal->context[[NSString stringWithAString:name]] = ^(){
return [[CJSCMemoryStream alloc] init];
};
}

View File

@ -0,0 +1,63 @@
// THIS FILE WAS GENERATED AUTOMATICALLY. DO NOT CHANGE IT!
// IF YOU NEED TO UPDATE THIS CODE, JUST RERUN PYTHON SCRIPT WITH "--internal" OPTION.
#include "../MemoryStreamEmbed.h"
#include "../../js_internal/jsc/jsc_base.h"
@protocol IJSCMemoryStreamEmbed <JSExport>
-(JSValue*) Copy : (JSValue*)stream : (JSValue*)pos : (JSValue*)len;
-(JSValue*) ClearNoAttack;
-(JSValue*) WriteByte : (JSValue*)value;
-(JSValue*) WriteBool : (JSValue*)value;
-(JSValue*) WriteLong : (JSValue*)value;
-(JSValue*) WriteDouble : (JSValue*)value;
-(JSValue*) WriteDouble2 : (JSValue*)value;
-(JSValue*) WriteStringA : (JSValue*)value;
-(JSValue*) WriteString : (JSValue*)value;
-(JSValue*) WriteString2 : (JSValue*)value;
@end
@interface CJSCMemoryStreamEmbed : NSObject<IJSCMemoryStreamEmbed, JSEmbedObjectProtocol>
{
@public
CMemoryStreamEmbed* m_internal;
}
@end
@implementation CJSCMemoryStreamEmbed
EMBED_OBJECT_WRAPPER_METHODS(CMemoryStreamEmbed);
FUNCTION_WRAPPER_JS_3(Copy, Copy)
FUNCTION_WRAPPER_JS_0(ClearNoAttack, ClearNoAttack)
FUNCTION_WRAPPER_JS_1(WriteByte, WriteByte)
FUNCTION_WRAPPER_JS_1(WriteBool, WriteBool)
FUNCTION_WRAPPER_JS_1(WriteLong, WriteLong)
FUNCTION_WRAPPER_JS_1(WriteDouble, WriteDouble)
FUNCTION_WRAPPER_JS_1(WriteDouble2, WriteDouble2)
FUNCTION_WRAPPER_JS_1(WriteStringA, WriteStringA)
FUNCTION_WRAPPER_JS_1(WriteString, WriteString)
FUNCTION_WRAPPER_JS_1(WriteString2, WriteString2)
@end
class CMemoryStreamEmbedAdapter : public CJSEmbedObjectAdapterJSC
{
public:
virtual id getExportedObject(CJSEmbedObject* pNative) override
{
return [[CJSCMemoryStreamEmbed alloc] init:(CMemoryStreamEmbed*)pNative];
}
};
CJSEmbedObjectAdapterBase* CMemoryStreamEmbed::getAdapter()
{
if (m_pAdapter == nullptr)
m_pAdapter = new CMemoryStreamEmbedAdapter();
return m_pAdapter;
}
std::string CMemoryStreamEmbed::getName() { return "CMemoryStreamEmbed"; }
CJSEmbedObject* CMemoryStreamEmbed::getCreator()
{
return new CMemoryStreamEmbed();
}

View File

@ -71,12 +71,6 @@ FUNCTION_WRAPPER_JS_1(GetImageOriginalSize, GetImageOriginalSize);
@end
void CNativeControlEmbed::CreateObjectInContext(const std::string &name, JSSmart<CJSContext> context)
{
context->m_internal->context[[NSString stringWithAString:name]] = ^(){
return [[CJSCNativeControl alloc] init];
};
}
void CNativeControlEmbed::CreateObjectBuilderInContext(const std::string &name, JSSmart<CJSContext> context)
{
context->m_internal->context[[NSString stringWithAString:name]] = ^(){

View File

@ -1,58 +0,0 @@
#include "../MemoryStreamEmbed.h"
#include "../../js_internal/v8/v8_base.h"
namespace NSMemoryStream
{
#define CURRENTWRAPPER CMemoryStreamEmbed
FUNCTION_WRAPPER_V8_1(_ms_write_byte, WriteByte)
FUNCTION_WRAPPER_V8_1(_ms_write_bool, WriteBool)
FUNCTION_WRAPPER_V8_1(_ms_write_long, WriteLong)
FUNCTION_WRAPPER_V8_1(_ms_write_double, WriteDouble)
FUNCTION_WRAPPER_V8_1(_ms_write_double2, WriteDouble2)
FUNCTION_WRAPPER_V8_1(_ms_writestringA, WriteStringA)
FUNCTION_WRAPPER_V8_1(_ms_writestring1, WriteString)
FUNCTION_WRAPPER_V8_1(_ms_writestring2, WriteString2)
FUNCTION_WRAPPER_V8_3(_ms_copy, Copy)
FUNCTION_WRAPPER_V8(_ms_clearnoattack, ClearNoAttack)
void _ms_pos(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& args)
{
CMemoryStreamEmbed* _this = (CMemoryStreamEmbed*)unwrap_native(args.This());
args.GetReturnValue().Set(v8::Integer::New(CV8Worker::GetCurrent(), _this->m_pInternal->GetSize()));
}
v8::Handle<v8::ObjectTemplate> CreateMemoryStreamTemplate(v8::Isolate* isolate)
{
v8::EscapableHandleScope handle_scope(isolate);
v8::Local<v8::ObjectTemplate> result = v8::ObjectTemplate::New(V8IsolateOneArg);
result->SetInternalFieldCount(1);
// property
result->SetAccessor(CreateV8String(CV8Worker::GetCurrent(), "pos"), _ms_pos);
NSV8Objects::Template_Set(result, "Copy", _ms_copy);
NSV8Objects::Template_Set(result, "ClearNoAttack", _ms_clearnoattack);
NSV8Objects::Template_Set(result, "WriteByte", _ms_write_byte);
NSV8Objects::Template_Set(result, "WriteBool", _ms_write_bool);
NSV8Objects::Template_Set(result, "WriteLong", _ms_write_long);
NSV8Objects::Template_Set(result, "WriteDouble", _ms_write_double);
NSV8Objects::Template_Set(result, "WriteDouble2", _ms_write_double2);
NSV8Objects::Template_Set(result, "WriteStringA", _ms_writestringA);
NSV8Objects::Template_Set(result, "WriteString", _ms_writestring1);
NSV8Objects::Template_Set(result, "WriteString2", _ms_writestring2);
return handle_scope.Escape(result);
}
void CreateNativeMemoryStream(const v8::FunctionCallbackInfo<v8::Value>& args)
{
CreateNativeInternalField(new CMemoryStreamEmbed(), NSMemoryStream::CreateMemoryStreamTemplate, args);
}
}
void CMemoryStreamEmbed::CreateObjectInContext(const std::string& name, JSSmart<CJSContext> context)
{
InsertToGlobal(name, context, NSMemoryStream::CreateNativeMemoryStream);
}

View File

@ -0,0 +1,66 @@
// THIS FILE WAS GENERATED AUTOMATICALLY. DO NOT CHANGE IT!
// IF YOU NEED TO UPDATE THIS CODE, JUST RERUN PYTHON SCRIPT WITH "--internal" OPTION.
#include "../MemoryStreamEmbed.h"
#include "../../js_internal/v8/v8_base.h"
namespace NSMemoryStreamEmbed
{
#define CURRENTWRAPPER CMemoryStreamEmbed
FUNCTION_WRAPPER_V8_3(_Copy, Copy)
FUNCTION_WRAPPER_V8_0(_ClearNoAttack, ClearNoAttack)
FUNCTION_WRAPPER_V8_1(_WriteByte, WriteByte)
FUNCTION_WRAPPER_V8_1(_WriteBool, WriteBool)
FUNCTION_WRAPPER_V8_1(_WriteLong, WriteLong)
FUNCTION_WRAPPER_V8_1(_WriteDouble, WriteDouble)
FUNCTION_WRAPPER_V8_1(_WriteDouble2, WriteDouble2)
FUNCTION_WRAPPER_V8_1(_WriteStringA, WriteStringA)
FUNCTION_WRAPPER_V8_1(_WriteString, WriteString)
FUNCTION_WRAPPER_V8_1(_WriteString2, WriteString2)
v8::Handle<v8::ObjectTemplate> CreateTemplate(v8::Isolate* isolate)
{
v8::EscapableHandleScope handle_scope(isolate);
v8::Local<v8::ObjectTemplate> result = v8::ObjectTemplate::New(isolate);
result->SetInternalFieldCount(1);
NSV8Objects::Template_Set(result, "Copy", _Copy);
NSV8Objects::Template_Set(result, "ClearNoAttack", _ClearNoAttack);
NSV8Objects::Template_Set(result, "WriteByte", _WriteByte);
NSV8Objects::Template_Set(result, "WriteBool", _WriteBool);
NSV8Objects::Template_Set(result, "WriteLong", _WriteLong);
NSV8Objects::Template_Set(result, "WriteDouble", _WriteDouble);
NSV8Objects::Template_Set(result, "WriteDouble2", _WriteDouble2);
NSV8Objects::Template_Set(result, "WriteStringA", _WriteStringA);
NSV8Objects::Template_Set(result, "WriteString", _WriteString);
NSV8Objects::Template_Set(result, "WriteString2", _WriteString2);
return handle_scope.Escape(result);
}
}
class CMemoryStreamEmbedAdapter : public CJSEmbedObjectAdapterV8Template
{
public:
virtual v8::Local<v8::ObjectTemplate> getTemplate(v8::Isolate* isolate) override
{
v8::EscapableHandleScope handle_scope(isolate);
v8::Local<v8::ObjectTemplate> templ = NSMemoryStreamEmbed::CreateTemplate(isolate);
return handle_scope.Escape(templ);
}
};
CJSEmbedObjectAdapterBase* CMemoryStreamEmbed::getAdapter()
{
if (m_pAdapter == nullptr)
m_pAdapter = new CMemoryStreamEmbedAdapter();
return m_pAdapter;
}
std::string CMemoryStreamEmbed::getName() { return "CMemoryStreamEmbed"; }
CJSEmbedObject* CMemoryStreamEmbed::getCreator()
{
return new CMemoryStreamEmbed();
}

View File

@ -32,43 +32,6 @@ namespace NSNativeControl
FUNCTION_WRAPPER_V8_1(_GetImageOriginalSize, GetImageOriginalSize)
FUNCTION_WRAPPER_V8(_GetImagesPath, GetImagesPath)
v8::Handle<v8::ObjectTemplate> CreateNativeControlTemplate(v8::Isolate* isolate)
{
v8::EscapableHandleScope handle_scope(isolate);
v8::Local<v8::ObjectTemplate> result = v8::ObjectTemplate::New(V8IsolateOneArg);
result->SetInternalFieldCount(1);
NSV8Objects::Template_Set(result, "SetFilePath", _SetFilePath);
NSV8Objects::Template_Set(result, "GetFilePath", _GetFilePath);
NSV8Objects::Template_Set(result, "SetFileId", _SetFileId);
NSV8Objects::Template_Set(result, "GetFileId", _GetFileId);
NSV8Objects::Template_Set(result, "GetFileBinary", _GetFileArrayBuffer);
NSV8Objects::Template_Set(result, "GetFontBinary", _GetFontArrayBuffer);
NSV8Objects::Template_Set(result, "GetFontsDirectory", _GetFontsDirectory);
NSV8Objects::Template_Set(result, "GetFileString", _GetFileString);
NSV8Objects::Template_Set(result, "GetEditorType", _GetEditorType);
NSV8Objects::Template_Set(result, "CheckNextChange", _CheckNextChange);
NSV8Objects::Template_Set(result, "GetCountChanges", _GetChangesCount);
NSV8Objects::Template_Set(result, "GetChangesFile", _GetChangesFile);
//NSV8Objects::Template_Set(result, "Save_AllocNative", _Save_AllocNative);
//NSV8Objects::Template_Set(result, "Save_ReAllocNative", _Save_ReAllocNative);
NSV8Objects::Template_Set(result, "Save_End", _Save_End);
NSV8Objects::Template_Set(result, "AddImageInChanges", _AddImageInChanges);
NSV8Objects::Template_Set(result, "ConsoleLog", _ConsoleLog);
NSV8Objects::Template_Set(result, "SaveChanges", _SaveChanges);
NSV8Objects::Template_Set(result, "ZipOpen", _zipOpenFile);
NSV8Objects::Template_Set(result, "ZipOpenBase64", _zipOpenFileBase64);
NSV8Objects::Template_Set(result, "ZipFileAsString", _zipGetFileAsString);
NSV8Objects::Template_Set(result, "ZipFileAsBinary", _zipGetFileAsBinary);
NSV8Objects::Template_Set(result, "ZipClose", _zipCloseFile);
NSV8Objects::Template_Set(result, "getImageUrl", _GetImageUrl);
NSV8Objects::Template_Set(result, "getImagesDirectory", _GetImagesPath);
NSV8Objects::Template_Set(result, "GetImageOriginalSize", _GetImageOriginalSize);
return handle_scope.Escape(result);
}
// Без SaveChanges
v8::Handle<v8::ObjectTemplate> CreateNativeControlTemplateBuilder(v8::Isolate* isolate)
{
@ -89,8 +52,6 @@ namespace NSNativeControl
NSV8Objects::Template_Set(result, "CheckNextChange", _CheckNextChange);
NSV8Objects::Template_Set(result, "GetCountChanges", _GetChangesCount);
NSV8Objects::Template_Set(result, "GetChangesFile", _GetChangesFile);
//NSV8Objects::Template_Set(result, "Save_AllocNative", _Save_AllocNative);
//NSV8Objects::Template_Set(result, "Save_ReAllocNative", _Save_ReAllocNative);
NSV8Objects::Template_Set(result, "Save_End", _Save_End);
NSV8Objects::Template_Set(result, "AddImageInChanges", _AddImageInChanges);
NSV8Objects::Template_Set(result, "ConsoleLog", _ConsoleLog);
@ -106,11 +67,6 @@ namespace NSNativeControl
return handle_scope.Escape(result);
}
void CreateNativeObject(const v8::FunctionCallbackInfo<v8::Value>& args)
{
CreateNativeInternalField(new CNativeControlEmbed(), CreateNativeControlTemplate, args, NSJSBase::iadtSingletonNative);
}
// Без SaveChanges
void CreateNativeObjectBuilder(const v8::FunctionCallbackInfo<v8::Value>& args)
{
@ -118,11 +74,6 @@ namespace NSNativeControl
}
}
void CNativeControlEmbed::CreateObjectInContext(const std::string& name, JSSmart<CJSContext> context)
{
InsertToGlobal(name, context, NSNativeControl::CreateNativeObject);
}
void CNativeControlEmbed::CreateObjectBuilderInContext(const std::string& name, JSSmart<CJSContext> context)
{
InsertToGlobal(name, context, NSNativeControl::CreateNativeObjectBuilder);