package com.jivesoftware.os.amza.service.partition; import com.jivesoftware.os.amza.api.partition.PartitionName; import com.jivesoftware.os.amza.api.partition.PartitionProperties; import com.jivesoftware.os.amza.api.partition.RingMembership; /** * @author jonathan.colt */ public interface VersionedPartitionProvider { boolean hasPartition(PartitionName partitionName) throws Exception; PartitionProperties getProperties(PartitionName partitionName) throws Exception; VersionedPartitionProperties getVersionedProperties(PartitionName partitionName, VersionedPartitionProperties versionedPartitionProperties); long getPartitionDisposal(PartitionName partitionName) throws Exception; class VersionedPartitionProperties { public final long version; public final PartitionProperties properties; public VersionedPartitionProperties(long version, PartitionProperties properties) { this.version = version; this.properties = properties; } } Iterable<PartitionName> getMemberPartitions(RingMembership ringMembership) throws Exception; }