createContinuousStreamResolver static method
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 filteringLSLStreamResolverContinuous.resolveByPredicate
for XPath filtering
Implementation
static LSLStreamResolverContinuous createContinuousStreamResolver({
double forgetAfter = 5.0,
int maxStreams = 5,
}) {
return LSLStreamResolverContinuous(
forgetAfter: forgetAfter,
maxStreams: maxStreams,
)..create();
}