declareAdvancedSubscriber method

AdvancedSubscriber declareAdvancedSubscriber(
  1. Object keyExpr, {
  2. AdvancedSubscriberOptions options = const AdvancedSubscriberOptions(),
})

Declares an advanced subscriber on the given keyExpr.

Returns an AdvancedSubscriber with optional history recovery, late publisher detection, sample recovery, and miss detection capabilities. Call AdvancedSubscriber.close when done.

keyExpr is a String or a KeyExpr, including a declared one.

Throws UnsupportedError if the loaded native lacks the unstable API — that gate runs FIRST, before the key expression is even looked at. Throws ArgumentError if keyExpr is neither a String nor a KeyExpr. Throws ZenohException if the key expression is invalid. Throws StateError if the session has been closed.

Implementation

AdvancedSubscriber declareAdvancedSubscriber(
  Object keyExpr, {
  AdvancedSubscriberOptions options = const AdvancedSubscriberOptions(),
}) {
  requireUnstable();
  return withLoanedKeyExpr(keyExpr, 'keyExpr', (loanedKe) {
    return AdvancedSubscriber.declare(
      loanedHandle,
      loanedKe,
      keyExprString(keyExpr, 'keyExpr'),
      options: options,
    );
  });
}