Open zxbzswxr opened 5 years ago
namespace My_SUD {
void initALL(v8::Handle<v8::Object> exports)
{
v8::Isolate* isolate = v8::Isolate::GetCurrent();
// 1
v8pp::class_<CPrjSolutionOper> solutionOperclass(isolate);
solutionOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor",&CPrjSolutionOper::Destructor)
.set("getNameFromID", &CPrjSolutionOper::getNameFromID)
.set("getIDFromName", &CPrjSolutionOper::getIDFromName)
.set("getAllSolutions", &CPrjSolutionOper::getAllSolutions)
.set("createASolution", &CPrjSolutionOper::createASolution)
.set("deleteSolution", &CPrjSolutionOper::deleteSolution)
.set("getTheSolution", &CPrjSolutionOper::getTheSolution)
.set("updateSolution", &CPrjSolutionOper::updateSolution)
.set("updateSolutionCooper", &CPrjSolutionOper::updateSolutionCooper)
.set("checkBrowseNameUseable", &CPrjSolutionOper::checkBrowseNameUseable)
.set("getGraphProjectTree", &CPrjSolutionOper::getGraphProjectTree)
.set("getAllProejctsDomainsDbunits", &CPrjSolutionOper::getAllProejctsDomainsDbunits)
.set("getRedisByName", &CPrjSolutionOper::getRedisByName)
;
// Fep
// 2
v8pp::class_<CPrjDomainOper> domainOperclass(isolate);
domainOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjDomainOper::Destructor)
.set("getNameFromID", &CPrjDomainOper::getNameFromID)
.set("getAlldomains", &CPrjDomainOper::getAlldomains)
.set("createAdomain", &CPrjDomainOper::createAdomain)
.set("deletedomain", &CPrjDomainOper::deletedomain)
.set("getTheDomain", &CPrjDomainOper::getTheDomain)
.set("updatedomain", &CPrjDomainOper::updatedomain)
.set("checkBrowseNameUseable", &CPrjDomainOper::checkBrowseNameUseable)
.set("checkNoUseable", &CPrjDomainOper::checkNoUseable)
.set("getDefaultPage", &CPrjDomainOper::getDefaultPage)
.set("setDefaultPage", &CPrjDomainOper::setDefaultPage)
.set("getAllDomainsDefaultpage", &CPrjDomainOper::getAllDomainsDefaultpage)
.set("getDomainAllDbunits", &CPrjDomainOper::getDomainAllDbunits)
;
// 3
v8pp::class_<CPrjSiteOper> siteOperclass(isolate);
siteOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjSiteOper::Destructor)
.set("getAllsites", &CPrjSiteOper::getAllsites)
.set("getSiteChilds", &CPrjSiteOper::getSiteChilds)
.set("createAsite", &CPrjSiteOper::createAsite)
.set("deletesite", &CPrjSiteOper::deletesite)
.set("getTheSite", &CPrjSiteOper::getTheSite)
.set("updatesite", &CPrjSiteOper::updatesite)
.set("checkBrowseNameUseable", &CPrjSiteOper::checkBrowseNameUseable)
.set("checkNoUseable", &CPrjSiteOper::checkNoUseable)
;
// 4
v8pp::class_<CPrjNetworkOper> netwOperclass(isolate);
netwOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjNetworkOper::Destructor)
.set("getAllnetworks", &CPrjNetworkOper::getAllnetworks)
.set("createAnetwork", &CPrjNetworkOper::createAnetwork)
.set("deletenetwork", &CPrjNetworkOper::deletenetwork)
.set("getTheNetwork", &CPrjNetworkOper::getTheNetwork)
.set("updatenetwork", &CPrjNetworkOper::updatenetwork)
.set("checkBrowseNameUseable", &CPrjNetworkOper::checkBrowseNameUseable)
.set("checkNoUseable", &CPrjNetworkOper::checkNoUseable)
;
// 5
v8pp::class_<CPrjDeviceOper> devOperclass(isolate);
devOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjDeviceOper::Destructor)
.set("getAlldevices", &CPrjDeviceOper::getAlldevices)
.set("createAdevice", &CPrjDeviceOper::createAdevice)
.set("deletedevice", &CPrjDeviceOper::deletedevice)
.set("getTheDevice", &CPrjDeviceOper::getTheDevice)
.set("updatedevice", &CPrjDeviceOper::updatedevice)
.set("checkBrowseNameUseable", &CPrjDeviceOper::checkBrowseNameUseable)
.set("checkNoUseable", &CPrjDeviceOper::checkNoUseable)
;
// 6
v8pp::class_<CPrjTagOper> tagOperclass(isolate);
tagOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjTagOper::Destructor)
.set("getAlltags", &CPrjTagOper::getAlltags)
.set("createAtag", &CPrjTagOper::createAtag)
.set("createTags", &CPrjTagOper::createTags)
.set("deletetag", &CPrjTagOper::deletetag)
.set("getTheTag", &CPrjTagOper::getTheTag)
.set("updatetag", &CPrjTagOper::updatetag)
.set("updatetags", &CPrjTagOper::updatetags)
.set("deletetags", &CPrjTagOper::deletetags)
;
// 7
v8pp::class_<CPrjDbunitDeployOper> deployOperclass(isolate);
deployOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjDbunitDeployOper::Destructor)
.set("getAllDeploysOfSite", &CPrjDbunitDeployOper::getAllDeploysOfSite)
.set("createAdeploy", &CPrjDbunitDeployOper::createAdeploy)
.set("deleteDeploy", &CPrjDbunitDeployOper::deleteDeploy)
.set("getTheDeploy", &CPrjDbunitDeployOper::getTheDeploy)
.set("updateDeploy", &CPrjDbunitDeployOper::updateDeploy)
;
// RTDB
// 8
v8pp::class_<CPrjDbGroupOper> groupOperclass(isolate);
groupOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjDbGroupOper::Destructor)
.set("getAlldbgroups", &CPrjDbGroupOper::getAlldbgroups)
.set("createAdbgroup", &CPrjDbGroupOper::createAdbgroup)
.set("deletedbgroup", &CPrjDbGroupOper::deletedbgroup)
.set("getTheDbGroup", &CPrjDbGroupOper::getTheDbGroup)
.set("updatedbgroup", &CPrjDbGroupOper::updatedbgroup)
.set("checkBrowseNameUseable", &CPrjDbGroupOper::checkBrowseNameUseable)
;
// 9
v8pp::class_<CPrjDbunitOper> dbunitOperclass(isolate);
dbunitOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjDbunitOper::Destructor)
.set("getNodeId", &CPrjDbunitOper::getNodeId)
.set("getAlldbunits", &CPrjDbunitOper::getAlldbunits)
.set("createAdbunit", &CPrjDbunitOper::createAdbunit)
.set("deletedbunit", &CPrjDbunitOper::deletedbunit)
.set("getTheDbUnit", &CPrjDbunitOper::getTheDbUnit)
.set("updatedbunit", &CPrjDbunitOper::updatedbunit)
.set("checkBrowseNameUseable", &CPrjDbunitOper::checkBrowseNameUseable)
.set("checkNoUseable", &CPrjDbunitOper::checkNoUseable)
;
// 10
v8pp::class_<CPrjAreaOper> areaOperclass(isolate);
areaOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjAreaOper::Destructor)
.set("getNodeId", &CPrjAreaOper::getNodeId)
.set("getAllareas", &CPrjAreaOper::getAllareas)
.set("getAreaChilds", &CPrjAreaOper::getAreaChilds)
.set("createAarea", &CPrjAreaOper::createAarea)
.set("deletearea", &CPrjAreaOper::deletearea)
.set("getTheArea", &CPrjAreaOper::getTheArea)
.set("updatearea", &CPrjAreaOper::updatearea)
.set("checkBrowseNameUseable", &CPrjAreaOper::checkBrowseNameUseable)
;
// 11
v8pp::class_<CEQObjOper> eqOperclass(isolate);
eqOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CEQObjOper::Destructor)
.set("getEQ", &CEQObjOper::getEQ)
.set("getNodeId", &CEQObjOper::getNodeId)
.set("getEQChilds", &CEQObjOper::getEQChilds)
.set("createEQ", &CEQObjOper::createEQ)
.set("modifyEQ", &CEQObjOper::modifyEQ)
.set("deleteEQ", &CEQObjOper::deleteEQ)
.set("checkBrowseNameUseable", &CEQObjOper::checkBrowseNameUseable)
;
// 12
v8pp::class_<CAIObjOper> aiOperclass(isolate);
aiOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CAIObjOper::Destructor)
.set("getAI", &CAIObjOper::getAI)
.set("createAI", &CAIObjOper::createAI)
.set("modifyAI", &CAIObjOper::modifyAI)
.set("deleteAI", &CAIObjOper::deleteAI)
.set("checkBrowseNameUseable", &CAIObjOper::checkBrowseNameUseable)
;
// 13
v8pp::class_<CDIObjOper> diOperclass(isolate);
diOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CDIObjOper::Destructor)
.set("getDI", &CDIObjOper::getDI)
.set("createDI", &CDIObjOper::createDI)
.set("modifyDI", &CDIObjOper::modifyDI)
.set("deleteDI", &CDIObjOper::deleteDI)
.set("checkBrowseNameUseable", &CDIObjOper::checkBrowseNameUseable)
;
// 14
v8pp::class_<CPrjUdvOper> udvOperclass(isolate);
udvOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor",&CPrjUdvOper::Destructor)
.set("getAlludvs", &CPrjUdvOper::getAlludvs)
.set("createAudv", &CPrjUdvOper::createAudv)
.set("deleteudv", &CPrjUdvOper::deleteudv)
.set("getTheUdv", &CPrjUdvOper::getTheUdv)
.set("updateudv", &CPrjUdvOper::updateudv)
;
// AI、DI tag
// 15
v8pp::class_<CPrjDITagsOper> diTagsOperclass(isolate);
diTagsOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjDITagsOper::Destructor)
.set("getRelations", &CPrjDITagsOper::getRelations)
.set("postRelations", &CPrjDITagsOper::postRelations)
.set("deleteAllRelations", &CPrjDITagsOper::deleteAllRelations)
; // string requestParse(const string &jsonObj);
// 16
v8pp::class_<CPrjAITagOper> aiTagOperclass(isolate);
aiTagOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjAITagOper::Destructor)
.set("getRelation", &CPrjAITagOper::getRelation)
.set("postRelation", &CPrjAITagOper::postRelation)
.set("deleteRelation", &CPrjAITagOper::deleteRelation)
;
// alarmtype
// 17
v8pp::class_<CAlarmFieldOper> alarmFieldOperclass(isolate);
alarmFieldOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CAlarmFieldOper::Destructor)
.set("getAllAlarmFields", &CAlarmFieldOper::getAllAlarmFields)
;
// 18
v8pp::class_<CAlarmLevelCfgOper> alarmLevelCfgOperclass(isolate);
alarmLevelCfgOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CAlarmLevelCfgOper::Destructor)
.set("getAllAlarmLevelCfgs", &CAlarmLevelCfgOper::getAllAlarmLevelCfgs)
.set("createAlarmLevelCfg", &CAlarmLevelCfgOper::createAlarmLevelCfg)
.set("updateAlarmLevelCfg", &CAlarmLevelCfgOper::updateAlarmLevelCfg)
.set("deleteAlarmLevelCfg", &CAlarmLevelCfgOper::deleteAlarmLevelCfg)
;
// 19
v8pp::class_<CAlarmStatusCfgOper> alarmStatusCfgOperclass(isolate);
alarmStatusCfgOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CAlarmStatusCfgOper::Destructor)
.set("getAllAlarmStatusCfgs", &CAlarmStatusCfgOper::getAllAlarmStatusCfgs)
.set("updateAlarmStatusCfg", &CAlarmStatusCfgOper::updateAlarmStatusCfg)
.set("updateAlarmStatusCfgs", &CAlarmStatusCfgOper::updateAlarmStatusCfgs)
;
// 20
v8pp::class_<CAlarmTypeCfgOper> alarmTypeCfgOperclass(isolate);
alarmTypeCfgOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CAlarmTypeCfgOper::Destructor)
.set("getAllAlarmTypeCfgs", &CAlarmTypeCfgOper::getAllAlarmTypeCfgs)
.set("updateAlarmTypeCfg", &CAlarmTypeCfgOper::updateAlarmTypeCfg)
.set("updateAlarmTypeCfgs", &CAlarmTypeCfgOper::updateAlarmTypeCfgs)
;
// IP
// 21
v8pp::class_<CIPManagerOper> ipmanageOperclass(isolate);
ipmanageOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CIPManagerOper::Destructor)
.set("postRequest", &CIPManagerOper::postRequest)
.set("getRequest", &CIPManagerOper::getRequest)
.set("deleteRequest", &CIPManagerOper::deleteRequest)
;
// template
// 22
v8pp::class_<CTypeDomainOper> typedomainOperclass(isolate);
typedomainOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeDomainOper::Destructor)
.set("getTypeDomain", &CTypeDomainOper::getTypeDomain)
;
// 23
v8pp::class_<CTypeSiteOper> typesiteOperclass(isolate);
typesiteOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeSiteOper::Destructor)
.set("getTypeSite", &CTypeSiteOper::getTypeSite)
;
// 24
v8pp::class_<CTypeNetworkOper> typenetOperclass(isolate);
typenetOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeNetworkOper::Destructor)
.set("getTypeNetwork", &CTypeNetworkOper::getTypeNetwork)
;
// 25
v8pp::class_<CTypeDeviceOper> typedevOperclass(isolate);
typedevOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeDeviceOper::Destructor)
.set("getTypeDevice", &CTypeDeviceOper::getTypeDevice)
;
// 26
v8pp::class_<CTypeGroupOper> typegroupOperclass(isolate);
typegroupOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeGroupOper::Destructor)
.set("getTypeGroup", &CTypeGroupOper::getTypeGroup)
;
// 27
v8pp::class_<CTypeDbunitOper> typedbunitOperclass(isolate);
typedbunitOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeDbunitOper::Destructor)
.set("getTypeDbUnit", &CTypeDbunitOper::getTypeDbUnit)
;
// 28
v8pp::class_<CTypeAreaOper> typeareaOperclass(isolate);
typeareaOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeAreaOper::Destructor)
.set("getTypeArea", &CTypeAreaOper::getTypeArea)
;
// 29
v8pp::class_<CTypeDataObjOper> typedataobjOperclass(isolate);
typedataobjOperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CTypeDataObjOper::Destructor)
.set("getTypeAI", &CTypeDataObjOper::getTypeAI)
.set("getTypeDI", &CTypeDataObjOper::getTypeDI)
.set("getTypeEQ", &CTypeDataObjOper::getTypeEQ)
.set("getTypeFieldPoint", &CTypeDataObjOper::getTypeFieldPoint)
;
// 30 philiview Cooperate prjeditlock
v8pp::class_<CPrjEditLockOper> prjeditlockoperclass(isolate);
prjeditlockoperclass.ctor<const v8::FunctionCallbackInfo<v8::Value>& >()
.set("Destructor", &CPrjEditLockOper::Destructor)
.set("getAllLockItems", &CPrjEditLockOper::getAllLockItems)
.set("getChildLockItems", &CPrjEditLockOper::getChildLockItems)
.set("getALockItem", &CPrjEditLockOper::getALockItem)
.set("createALockItem", &CPrjEditLockOper::createALockItem)
.set("modifyALockItem", &CPrjEditLockOper::modifyALockItem)
.set("deleteLockItem", &CPrjEditLockOper::deleteLockItem)
;
// name of the caller in javascript
v8pp::module addon(isolate);
addon.set("CPrjSolutionOper", solutionOperclass);
addon.set("CPrjDomainOper", domainOperclass);
addon.set("CPrjSiteOper", siteOperclass);
addon.set("CPrjNetworkOper", netwOperclass);
addon.set("CPrjDeviceOper", devOperclass);
addon.set("CPrjTagOper", tagOperclass);
addon.set("CPrjDbunitDeployOper", deployOperclass);
addon.set("CPrjDbGroupOper", groupOperclass);
addon.set("CPrjDbunitOper", dbunitOperclass);
addon.set("CPrjAreaOper", areaOperclass);
addon.set("CEQObjOper", eqOperclass);
addon.set("CAIObjOper", aiOperclass);
addon.set("CDIObjOper", diOperclass);
addon.set("CPrjUdvOper", udvOperclass);
addon.set("CPrjAITagOper", aiTagOperclass);
addon.set("CPrjDITagsOper", diTagsOperclass);
addon.set("CAlarmFieldOper", alarmFieldOperclass);
addon.set("CAlarmLevelCfgOper", alarmLevelCfgOperclass);
addon.set("CAlarmStatusCfgOper", alarmStatusCfgOperclass);
addon.set("CAlarmTypeCfgOper", alarmTypeCfgOperclass);
addon.set("CIPManagerOper", ipmanageOperclass);
addon.set("CTypeDomainOper", typedomainOperclass);
addon.set("CTypeSiteOper", typesiteOperclass);
addon.set("CTypeNetworkOper", typenetOperclass);
addon.set("CTypeDeviceOper", typedevOperclass);
addon.set("CTypeGroupOper", typegroupOperclass);
addon.set("CTypeAreaOper", typeareaOperclass);
addon.set("CTypeDataObjOper", typedataobjOperclass);
addon.set("CTypeDbunitOper", typedbunitOperclass);
addon.set("CPrjEditLockOper", prjeditlockoperclass);
// create database operation
addon.set("InitCreateDb",&InitCreateDb);
// registe service
addon.set("RegisterCfgService",&RegisterCfgService);
addon.set("startAlarmCfgService",&startAlarmCfgService);
// network tag cfg load
addon.set("loadServiceCfg", &InitCfgLoadFromFile);
exports->SetPrototype(isolate->GetCurrentContext(), addon.new_instance());
node::AtExit([](void* param)
{
printf("begin Exit\n");
v8pp::cleanup(static_cast<v8::Isolate*>(param));
}, isolate);
}
}
NODE_MODULE(DBOperPlusV8, My_SUD::initALL)
I export all the class and function using DBOperPlusV8.node (dll)
Javascript side: var DBOperPlusV8 = require('DBOperPlusV8');
var SolutionOper = DBOperPlusV8.CPrjSolutionOper();
var strSolutionDetail = SolutionOper.getTheSolution(soltID);
SolutionOper.Destructor();
@pmed that's all help
How to use v8pp?? I can't download it.
How can I install this development environment?
I want to export many c++ classes to node.js and I just divide these c++ classes into multiple dlls according to their function for conviniece. But I export all of them in another dll(.node in javascript view) finally.
the function from other dll works well but the class from other dll failed to work.. all the class has its constructor and some member function.. error is like that ,
as you see : Error: v8pp::class_<class PHILICUBE_SUD::CPrjSolutionOper, struct v8pp::raw_ptr_traits> is not registered in isolate 000001F5E1DE14A0
the class from other dlls can not be registered but the function can @pmed Can you help me solve it?