FeatureClient constructor
FeatureClient({
- required ClientMetadata metadata,
- required HookManager hookManager,
- required EvaluationContext defaultContext,
- EvaluationContext? apiContext,
- EvaluationContext apiContextResolver()?,
- FeatureProvider? provider,
- FeatureProvider providerResolver()?,
- ProviderState providerStatusResolver()?,
- TransactionContextManager? transactionManager,
- Stream<
OpenFeatureEvent> ? eventStream,
Implementation
FeatureClient({
required this.metadata,
required HookManager hookManager,
required EvaluationContext defaultContext,
EvaluationContext? apiContext,
EvaluationContext Function()? apiContextResolver,
FeatureProvider? provider,
FeatureProvider Function()? providerResolver,
ProviderState Function(FeatureProvider)? providerStatusResolver,
TransactionContextManager? transactionManager,
Stream<OpenFeatureEvent>? eventStream,
}) : _hookManager = hookManager,
_defaultContext = defaultContext,
_apiContext = apiContext ?? const EvaluationContext(attributes: {}),
_apiContextResolver = apiContextResolver,
_fallbackProvider = provider ?? InMemoryProvider({}),
_providerResolver = providerResolver,
_providerStatusResolver = providerStatusResolver,
_transactionManager = transactionManager ?? TransactionContextManager() {
if (_providerResolver == null &&
providerStatus == ProviderState.NOT_READY) {
unawaited(
this.provider.initialize().catchError((Object error, StackTrace stack) {
_logger.severe(
'Provider initialization failed: $error',
error,
stack,
);
}),
);
}
if (eventStream != null) {
_eventSubscription = eventStream.listen(_forwardEvent);
}
}