in src/Reader.cc [125:145]
static void createReaderCallback(pulsar_result result, pulsar_reader_t *rawReader, void *ctx) {
auto instanceContext = static_cast<ReaderNewInstanceContext *>(ctx);
auto deferred = instanceContext->deferred;
auto cClient = instanceContext->cClient;
auto readerConfig = instanceContext->readerConfig;
delete instanceContext;
if (result != pulsar_result_Ok) {
return deferred->Reject(std::string("Failed to create reader: ") + pulsar_result_str(result));
}
auto cReader = std::shared_ptr<pulsar_reader_t>(rawReader, pulsar_reader_free);
deferred->Resolve([cReader, readerConfig](const Napi::Env env) {
Napi::Object obj = Reader::constructor.New({});
Reader *reader = Reader::Unwrap(obj);
reader->SetCReader(cReader);
reader->SetListenerCallback(readerConfig->GetListenerCallback());
return obj;
});
}