TaskExecutor<NativeOptions extends Struct, Options extends TaskOptions<NativeOptions>, NativeResult extends Struct, Result extends IOTaskResult> class abstract

Instantiates and manages an object which can complete MediaPipe tasks. The managed task-completing object does not exist in Dart memory, but instead in platform-dependent native memory.

Extending classes should implement createResultsPointer, createWorker, closeWorker, and any additional task-specific methods. Applications will only call those extra task-specific methods, which will throw an exception on any error communicating with the native workers. It is the job of application code to surround those task-specific methods with try-catch clauses.

Executors are separated from their public API counterparts because FFI and MediaPipe have no concept of asynchrony or futures, so this pattern allows a public-facing task handler to create an executor on a separate isolate, and for Flutter apps to await the results of MediaPipe tasks.

Constructors

TaskExecutor(Options options)
Instantiates and manages an object which can complete MediaPipe tasks. The managed task-completing object does not exist in Dart memory, but instead in platform-dependent native memory.

Properties

hashCode int
The hash code for this object.
no setterinherited
options → Options
Initialization values for the worker.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
taskName String
Debug value for log statements.
no setter
worker Pointer<Void>
The native MediaPipe object which will complete this task.
no setter

Methods

closeWorker(Pointer<Void> worker, Pointer<Pointer<Char>> error) int
Releases the worker object behind this task.
createResultsPointer() Pointer<NativeResult>
Allocates this task's results struct in native memory.
createWorker(Pointer<NativeOptions> options, Pointer<Pointer<Char>> error) Pointer<Void>
Allocates this task's worker object in native memory.
dispose() → void
Releases the worker and any remaining resources. After calling dispose, re-using the worker property will recreate the native object and will require a second call to dispose.
handleErrorMessage(Pointer<Pointer<Char>> errorMessage, [int? status]) → void
Throws an exception if errorMessage is non-empty.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited