start method

Future<ScavengeResult> start({
  1. required EndPoint node,
  2. int threadCount = 1,
  3. int startFromChunk = 0,
  4. UserCredentials? userCredentials,
  5. EventStoreClientOperationOptions? operationOptions,
})

Starts a scavenge operation. Use parameter threadCount to control the number of threads to use. Use parameter startFromChunk to control where to start scavenging. Use parameter node to specify which node to start scavenge. Returns a ScavengeResult with ScavengeResult.state and ScavengeResult.scavengeId. Throws an ArgumentOutOfRangeException on negative parameters.

Implementation

Future<ScavengeResult> start({
  required EndPoint node,
  int threadCount = 1,
  int startFromChunk = 0,
  UserCredentials? userCredentials,
  EventStoreClientOperationOptions? operationOptions,
}) {
  if (startFromChunk < 0) {
    throw ArgumentOutOfRangeException("'startFromChunk' must be positive");
  }
  if (threadCount <= 0) {
    throw ArgumentOutOfRangeException("'threadCount' must be positive");
  }

  return $runRequest<ScavengeResult>(() async {
    final request = $a.StartScavengeReq()
      ..options = ($a.StartScavengeReq_Options()
        ..startFromChunk = startFromChunk
        ..threadCount = threadCount);

    final client = await $getClient(node);
    final result = await client.startScavenge(
      request,
      options: $getOptions(
        userCredentials: userCredentials,
        operationOptions: operationOptions,
      ),
    );
    return ScavengeResult.from(result);
  });
}