createContinuousStreamResolver static method

LSLStreamResolverContinuous createContinuousStreamResolver({
  1. double forgetAfter = 5.0,
  2. int maxStreams = 5,
})

Creates a continuous stream resolver for efficient long-term monitoring.

Unlike one-shot resolution methods, this creates a persistent resolver that continuously monitors for streams in the background, providing efficient repeated queries without the overhead of creating new resolvers.

Parameters:

  • forgetAfter: Time in seconds to forget unseen streams (default: 5.0)
  • maxStreams: Maximum number of streams to track (default: 5)

Key Features:

  • Continuous background monitoring
  • Automatic stream discovery and forgetting
  • Support for property and predicate filtering
  • Memory efficient for repeated queries

Usage Example:

// Create continuous resolver
final resolver = LSL.createContinuousStreamResolver(
  forgetAfter: 10.0,
  maxStreams: 20,
);

// Use for multiple queries
final allStreams = await resolver.resolve(waitTime: 1.0);
// later
final moreStreams = await resolver.resolve(waitTime: 5.0);

// Clean up when done
resolver.destroy();

Memory Management: Always call LSLStreamResolverContinuous.destroy when finished to prevent memory leaks. The resolver runs background threads that need explicit cleanup.

Performance: Ideal for applications that need frequent stream discovery, such as real-time monitoring dashboards or connection managers.

Returns: Configured and initialized LSLStreamResolverContinuous

See Also:

  • LSLStreamResolverContinuous.resolve for basic resolution
  • LSLStreamResolverContinuous.resolveByProperty for property filtering
  • LSLStreamResolverContinuous.resolveByPredicate for XPath filtering

Implementation

static LSLStreamResolverContinuous createContinuousStreamResolver({
  double forgetAfter = 5.0,
  int maxStreams = 5,
}) {
  return LSLStreamResolverContinuous(
    forgetAfter: forgetAfter,
    maxStreams: maxStreams,
  )..create();
}