assignJob method

  1. @nonVirtual
void assignJob(
  1. void job(
    1. Pointer<BackendMsg>
    )
)

Registers job as the handler invoked for every message emitted by this service.

job receives a non-null Pointer<BackendMsg>. freeMessage is called automatically once job returns.

Implementation

@nonVirtual
void assignJob(void Function(Pointer<BackendMsg>) job) {
  assert(!_disposed, 'assignJob called on a disposed Service');
  assert(
    _subscriptions.isEmpty,
    'assignJob called twice on the same Service — '
    'each message pointer would be freed twice (double-free)',
  );
  _subscriptions.add(_messageStream.listen((message) {
    job(message);
    freeMessage(message);
  }));
}