package com.jivesoftware.os.amza.api.partition; import com.jivesoftware.os.amza.api.ring.RingMember; import com.jivesoftware.os.aquarium.LivelyEndState; import com.jivesoftware.os.aquarium.State; import com.jivesoftware.os.aquarium.Waterline; /** * */ public interface AquariumTransactor { LivelyEndState getLivelyEndState(VersionedPartitionName versionedPartitionName) throws Exception; boolean isLivelyEndState(VersionedPartitionName versionedPartitionName, RingMember ringMember) throws Exception; LivelyEndState awaitOnline(VersionedPartitionName versionedPartitionName, long timeoutMillis) throws Exception; Waterline getLeader(VersionedPartitionName versionedPartitionName) throws Exception; void wipeTheGlass(VersionedPartitionName versionedPartitionName) throws Exception; boolean suggestState(VersionedPartitionName versionedPartitionName, State state) throws Exception; void tookFully(VersionedPartitionName versionedPartitionName, RingMember fromMember, long leadershipToken) throws Exception; boolean isColdstart(VersionedPartitionName versionedPartitionName) throws Exception; boolean isMemberInState(VersionedPartitionName versionedPartitionName, RingMember ringMember, State state) throws Exception; void delete(VersionedPartitionName versionedPartitionName) throws Exception; }