MCPcopy Create free account
hub / github.com/nodejs/node-addon-api / AsyncProgressQueueWorker

Class AsyncProgressQueueWorker

napi.h:3322–3376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3320
3321template <class T>
3322class AsyncProgressQueueWorker
3323 : public AsyncProgressWorkerBase<std::pair<T*, size_t>> {
3324 public:
3325 virtual ~AsyncProgressQueueWorker(){};
3326
3327 class ExecutionProgress {
3328 friend class AsyncProgressQueueWorker;
3329
3330 public:
3331 void Signal() const;
3332 void Send(const T* data, size_t count) const;
3333
3334 private:
3335 explicit ExecutionProgress(AsyncProgressQueueWorker* worker)
3336 : _worker(worker) {}
3337 AsyncProgressQueueWorker* const _worker;
3338 };
3339
3340 void OnWorkComplete(Napi::Env env, napi_status status) override;
3341 void OnWorkProgress(std::pair<T*, size_t>*) override;
3342
3343 protected:
3344 explicit AsyncProgressQueueWorker(const Function& callback);
3345 explicit AsyncProgressQueueWorker(const Function& callback,
3346 const char* resource_name);
3347 explicit AsyncProgressQueueWorker(const Function& callback,
3348 const char* resource_name,
3349 const Object& resource);
3350 explicit AsyncProgressQueueWorker(const Object& receiver,
3351 const Function& callback);
3352 explicit AsyncProgressQueueWorker(const Object& receiver,
3353 const Function& callback,
3354 const char* resource_name);
3355 explicit AsyncProgressQueueWorker(const Object& receiver,
3356 const Function& callback,
3357 const char* resource_name,
3358 const Object& resource);
3359
3360// Optional callback of Napi::ThreadSafeFunction only available after
3361// NAPI_VERSION 4. Refs: https://github.com/nodejs/node/pull/27791
3362#if NAPI_VERSION > 4
3363 explicit AsyncProgressQueueWorker(Napi::Env env);
3364 explicit AsyncProgressQueueWorker(Napi::Env env, const char* resource_name);
3365 explicit AsyncProgressQueueWorker(Napi::Env env,
3366 const char* resource_name,
3367 const Object& resource);
3368#endif
3369 virtual void Execute(const ExecutionProgress& progress) = 0;
3370 virtual void OnProgress(const T* data, size_t count) = 0;
3371
3372 private:
3373 void Execute() override;
3374 void Signal() const;
3375 void SendProgress_(const T* data, size_t count);
3376};
3377#endif // NAPI_VERSION > 3 && NAPI_HAS_THREADS
3378
3379// Memory management.

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected