implementAsBlocking static method
Builds an object that implements the NSDiscardableContent protocol. To implement
multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All
methods that can be implemented as blocking listeners will be.
If $keepIsolateAlive is true, this protocol will keep this isolate
alive until it is garbage collected by both Dart and ObjC.
Implementation
static NSDiscardableContent implementAsBlocking({
required bool Function() beginContentAccess,
required void Function() endContentAccess,
required void Function() discardContentIfPossible,
required bool Function() isContentDiscarded,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'NSDiscardableContent');
NSDiscardableContent.beginContentAccess.implement(
builder,
beginContentAccess,
);
NSDiscardableContent.endContentAccess.implementAsBlocking(
builder,
endContentAccess,
);
NSDiscardableContent.discardContentIfPossible.implementAsBlocking(
builder,
discardContentIfPossible,
);
NSDiscardableContent.isContentDiscarded.implement(
builder,
isContentDiscarded,
);
builder.addProtocol($protocol);
return NSDiscardableContent.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}