OfflineMutationQueue class

Persistent offline mutation buffer and replay engine.

Stores failed or offline mutations to storage and replays them sequentially FIFO once network connectivity is restored.

Example:

final queue = OfflineMutationQueue(storage: BloomSecureStorage());
queue.registerExecutor('create_post', (payload) => api.createPost(payload));

await queue.enqueue(mutationType: 'create_post', payload: {'title': 'Offline Post'});
final synced = await queue.processQueue();
print('Synced $synced mutations');

Constructors

OfflineMutationQueue({BloomStorageAdapter? storage})
Creates an OfflineMutationQueue with an optional storage adapter.

Properties

hashCode → int
The hash code for this object.
no setterinherited
isEmpty → bool
Whether the queue is currently empty.
no setter
isProcessing → bool
Whether the queue is currently in the middle of replaying mutations.
no setter
length → int
Number of mutations currently in queue (alias for queueDepth).
no setter
pendingMutations → List<QueuedMutation>
Unmodifiable list of pending mutations waiting in queue.
no setter
queueDepth → int
Total number of pending mutations currently waiting in queue.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
storage → BloomStorageAdapter?
Storage adapter used to persist queued mutations across restarts.
final

Methods

clear() → Future<void>
Clears all queued mutations from memory and persistent storage.
enqueue({String? mutationType, String? tag, required Map<String, dynamic> payload, ConflictPolicy conflictPolicy = ConflictPolicy.clientWins}) → Future<String>
Enqueues an optimistic mutation when disconnected.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
persist() → Future<void>
Persists current in-memory queue to storage.
processQueue([FutureOr customHandler(QueuedMutation)?]) → Future<int>
Replays pending mutations sequentially FIFO with conflict policy handling.
registerExecutor(String mutationType, MutationExecutor executor, {CustomConflictResolver? conflictResolver}) → void
Registers a mutation executor and optional conflictResolver for a given mutationType.
restore() → Future<void>
Restores persisted mutations from disk storage.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Properties

instance → OfflineMutationQueue
Default singleton instance for global application use.
final
pendingCount → int
Total count of pending mutations in the default queue instance.
no setter