NetworkCubit class abstract
A lightweight Cubit-like base class that manages NetworkState and integrates with NetworkManager.
Subclass this to create feature-specific cubits:
class UserCubit extends NetworkCubit {
UserCubit(NetworkManager manager) : super(manager);
Future<void> loadUser() async {
await executeRequest(
() => api.getUser(),
cacheKey: 'user',
strategy: CacheFirst(),
);
}
}
// Usage
final cubit = UserCubit(networkManager);
cubit.stream.listen((state) {
switch (state) {
case Success<User>() => print(state.data.name);
case Loading() => print('loading...');
// ...
}
});
await cubit.loadUser();
Constructors
- NetworkCubit(NetworkManager _manager)
- Creates a NetworkCubit with the given NetworkManager.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- isClosed → bool
-
Whether the cubit has been closed.
no setter
- manager → NetworkManager
-
The underlying NetworkManager.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → NetworkState
-
The current state.
no setter
-
stream
→ Stream<
NetworkState> -
Stream of state changes.
no setter
Methods
-
close(
) → Future< void> - Close the cubit and release resources.
-
emit(
NetworkState newState) → void - Emit a new state and notify listeners.
-
executeRequest<
T> (Future< T> requestFn(), {String? cacheKey, NetworkStrategy? strategy, Duration? cacheTtl}) → Future<T?> - Execute a request through NetworkManager and emit state transitions.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited