isQuorum method

bool isQuorum(
  1. Set<String> nodes
)

Check whether nodes form a quorum: each node must have at least one slice fully contained in nodes.

Implementation

bool isQuorum(Set<String> nodes) {
  if (!validateStructure()) throw StateError('invalid slice structure');
  for (var n in nodes) {
    final s = slices[n];
    if (s == null) return false;
    var satisfied = false;
    for (var slice in s) {
      if (slice.difference(nodes).isEmpty) {
        satisfied = true;
        break;
      }
    }
    if (!satisfied) return false;
  }
  return true;
}