BatchManager

Classes > Sync > 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.