void EIO_AfterUpdate(uv_work_t* req) { NanScope(); OpenBaton* data = static_cast<OpenBaton*>(req->data); v8::Handle<v8::Value> argv[2]; if(data->errorString[0]) { argv[0] = v8::Exception::Error(NanNew<v8::String>(data->errorString)); argv[1] = NanUndefined(); // not needed for AfterOpenSuccess delete data->dataCallback; delete data->errorCallback; delete data->disconnectedCallback; } else { argv[0] = NanUndefined(); argv[1] = NanNew<v8::Int32>(data->result); int fd = argv[1]->ToInt32()->Int32Value(); newQForFD(fd); AfterOpenSuccess(data->result, data->dataCallback, data->disconnectedCallback, data->errorCallback); } data->callback->Call(2, argv); delete data->platformOptions; delete data->callback; delete data; delete req; }
void EIO_AfterOpen(uv_work_t* req) { Nan::HandleScope scope; OpenBaton* data = static_cast<OpenBaton*>(req->data); v8::Local<v8::Value> argv[2]; if (data->errorString[0]) { argv[0] = v8::Exception::Error(Nan::New<v8::String>(data->errorString).ToLocalChecked()); argv[1] = Nan::Undefined(); } else { argv[0] = Nan::Null(); argv[1] = Nan::New<v8::Int32>(data->result); int fd = Nan::To<v8::Int32>(argv[1]).ToLocalChecked()->Value(); newQForFD(fd); } data->callback.Call(2, argv); delete data; delete req; }