У меня есть два подкласса Nan::ObjectWrap
class Zyre: public Nan::ObjectWrap {...}
class ZyreEvent: public Nan::ObjectWrap {...}
Как я могу вернуть ZyreEvent
объект JavaScript из метода в Zyre
?
У меня есть следующий метод, в котором я создаю ZyreEvent
:
NAN_METHOD (Zyre::_recv) {
Zyre *node = Nan::ObjectWrap::Unwrap <Zyre> (info.Holder ());
ZyreEvent *zyre_event = new ZyreEvent (node->self);
info.GetReturnValue().Set(zyre_event->Wrap(info.This()));
}
Но я не могу обернуть zyre_event, потому что Wrap
является защищенным членом.
Если я правильно понимаю, вы хотите вернуться из (подкласс) Nan::ObjectWrap
метод экземпляра другого (подкласс) Nan::ObjectWrap
,
Примечание: у меня нет опыта, поэтому в этом могут быть недостатки или ошибки. Я положил мои источники в скобках, где примеры, как это делается, я думаю.
static NewInstance
метод в первом классе, который получает указатель на себя (NewInstance)v8::External
обернуть объект C ++ первого класса и передать его в качестве аргумента для New
с argc
а также argv
первоклассному конструктору (используя v8 :: External) (v8 :: Внешний документ)New
метод и управление info.Length() == 1 && info[0]->IsExternal()
случай, который в основном является конструктором копирования в этом случае (копирование переданного указателя)...::NewInstance()
во втором классе, чтобы установить возвращаемое значениеДругих решений пока нет …