package com.jivesoftware.os.amza.service; import com.jivesoftware.os.amza.api.partition.PartitionName; import com.jivesoftware.os.amza.api.partition.PartitionProperties; import com.jivesoftware.os.amza.api.ring.RingMember; /** * * @author jonathan.colt */ public interface PartitionProvider { boolean createPartitionIfAbsent(PartitionName partitionName, PartitionProperties partitionProperties) throws Exception; Partition getPartition(PartitionName partitionName) throws Exception; PartitionProperties getProperties(PartitionName partitionName) throws Exception; void updateProperties(PartitionName partitionName, PartitionProperties partitionProperties) throws Exception; RingMember awaitLeader(PartitionName partitionName, long waitForLeaderElection) throws Exception; void awaitOnline(PartitionName partitionName, long timeoutMillis) throws Exception; }