MultiBaseProvider.create constructor

MultiBaseProvider.create({
  1. required Key key,
  2. required MultiBaseInherited inherited,
  3. MultiBaseFunction? initialize,
  4. MultiBaseFunction? update,
})

Implementation

factory MultiBaseProvider.create({
  required Key key,
  required MultiBaseInherited inherited,
  MultiBaseFunction? initialize,
  MultiBaseFunction? update,
}) {
  if (_instances[key] == null) {
    _instances[key] = MultiBaseProvider._init(key: key, inherited: inherited);
    if (initialize != null)
      initialize(_instances[key]!._inherited._blocs,
          _instances[key]!._subscriptions);
    for (BaseBloc bloc in _instances[key]!._inherited._blocs!.values)
      _instances[key]!._subscriptions.add(
            bloc.exceptionStream!.listen(
              (BaseException? e) =>
                  _instances[key]?._inherited.exception?.add(e),
            ),
          );
  } else {
    if (update != null) {
      update(_instances[key]!._inherited._blocs,
          _instances[key]!._subscriptions);
    }
    _instances[key] = MultiBaseProvider._copy(key: key, inherited: inherited);
  }
  return _instances[key]!;
}