65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
//
|
|
// Created on 2024/4/22.
|
|
//
|
|
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
|
|
// please include "napi/native_api.h".
|
|
|
|
#include "CalculateAdaptor.h"
|
|
#include "Calculate.h"
|
|
#include "CalculateInfo.h"
|
|
|
|
CalculateAdaptor::CalculateAdaptor() {
|
|
_calculate = &Calculate::getInstance();
|
|
}
|
|
|
|
CalculateAdaptor::CalculateAdaptor(napi_env env, napi_value thisVar) {
|
|
_calculate = &Calculate::getInstance();
|
|
}
|
|
|
|
CalculateAdaptor::~CalculateAdaptor() {
|
|
|
|
}
|
|
|
|
CalculateAdaptor *util_get_napi_info(napi_env env, napi_callback_info cbinfo, size_t argc, napi_value *argv)
|
|
{
|
|
napi_value thisVar = nullptr;
|
|
void *data = nullptr;
|
|
napi_get_cb_info(env, cbinfo, &argc, argv, &thisVar, &data);
|
|
CalculateAdaptor *calculator = nullptr;
|
|
napi_unwrap(env, thisVar, (void **)&calculator);
|
|
return calculator;
|
|
}
|
|
|
|
|
|
napi_value calculate_add(napi_env env, napi_callback_info info) {
|
|
size_t argc = 2;
|
|
napi_value argv[2] = {0};
|
|
CalculateAdaptor *calculator = util_get_napi_info(env, info, argc, argv);
|
|
|
|
int32_t result = 0;
|
|
napi_status a = napi_ok;
|
|
a = napi_get_value_int32(env, argv[0], &result);
|
|
|
|
napi_status b = napi_ok;
|
|
b = napi_get_value_int32(env, argv[1], &result);
|
|
|
|
napi_value value;
|
|
napi_create_int32(env, calculator->_calculate->add(a, b), &value);
|
|
return value;
|
|
}
|
|
|
|
napi_value calculate_getInfo(napi_env env, napi_callback_info info) {
|
|
size_t argc = 0;
|
|
napi_value argv[1] = {0};
|
|
CalculateAdaptor *calculator = util_get_napi_info(env, info, argc, argv);
|
|
|
|
CalculateInfo info2;
|
|
info2.name = calculator->_calculate->getInfo().name;
|
|
info2.versionCode = calculator->_calculate->getInfo().versionCode;
|
|
info2.versionName = calculator->_calculate->getInfo().versionName;
|
|
|
|
napi_value value;
|
|
|
|
return value;
|
|
}
|