BatchManager
Manages batch fetching and processing for sync operations. Implements spec Section 12 (Batching).
public static class BatchManager
Methods
FetchBatch(long, int, Func<long, int, Result<IReadOnlyList<SyncLogEntry>, SyncError>>, ILogger)
public static Result<SyncBatch, SyncError> FetchBatch(long fromVersion, int batchSize, Func<long, int, Result<IReadOnlyList<SyncLogEntry>, SyncError>> fetchChanges, ILogger logger)
Fetches a batch of changes from the sync log.
Parameters:
| Name | Type | Description |
|---|---|---|
fromVersion |
Int64 |
Version to fetch from. |
batchSize |
Int32 |
Maximum batch size. |
fetchChanges |
SyncError>> |
Function to fetch changes. |
logger |
ILogger |
Logger for batch operations. |
Returns: SyncError> - Batch result or sync error.
ProcessAllBatches(long, BatchConfig, Func<long, int, Result<IReadOnlyList<SyncLogEntry>, SyncError>>, Func<SyncBatch, Result<BatchApplyResult, SyncError>>, Action<long>, ILogger)
public static Result<int, SyncError> ProcessAllBatches(long startVersion, BatchConfig config, Func<long, int, Result<IReadOnlyList<SyncLogEntry>, SyncError>> fetchChanges, Func<SyncBatch, Result<BatchApplyResult, SyncError>> applyBatch, Action<long> updateVersion, ILogger logger)
Processes all batches in a pull phase until no more changes are available.
Parameters:
| Name | Type | Description |
|---|---|---|
startVersion |
Int64 |
Version to start from. |
config |
BatchConfig |
Batch configuration. |
fetchChanges |
SyncError>> |
Function to fetch changes. |
applyBatch |
SyncError>> |
Function to apply a batch. |
updateVersion |
Int64> |
Action to update version. |
logger |
ILogger |
Logger for batch operations. |
Returns: SyncError> - Total applied count or sync error.
VerifyBatchHash(SyncBatch, ILogger)
public static Result<bool, SyncError> VerifyBatchHash(SyncBatch batch, ILogger logger)
Verifies a batch hash matches its contents.
Parameters:
| Name | Type | Description |
|---|---|---|
batch |
SyncBatch |
The batch to verify. |
logger |
ILogger |
Logger for hash verification. |
Returns: SyncError> - True if hash matches or no hash present, error if mismatch.