package com.jivesoftware.os.amza.client.http;
import com.jivesoftware.os.amza.api.PartitionClient.KeyValueFilter;
import com.jivesoftware.os.amza.api.partition.Consistency;
import com.jivesoftware.os.amza.api.ring.RingMember;
import com.jivesoftware.os.amza.api.stream.ClientUpdates;
import com.jivesoftware.os.amza.api.stream.OffsetUnprefixedWALKeys;
import com.jivesoftware.os.amza.api.stream.PrefixedKeyRanges;
import com.jivesoftware.os.amza.api.stream.UnprefixedWALKeys;
import java.util.Map;
/**
* @author jonathan.colt
*/
public interface RemotePartitionCaller<C, E extends Throwable> {
PartitionResponse<NoOpCloseable> commit(RingMember leader,
RingMember ringMember,
C client,
Consistency consistency,
byte[] prefix,
ClientUpdates updates,
long abandonSolutionAfterNMillis) throws E;
PartitionResponse<CloseableStreamResponse> get(RingMember leader,
RingMember ringMember,
C client,
Consistency consistency,
byte[] prefix,
UnprefixedWALKeys keys) throws E;
PartitionResponse<CloseableStreamResponse> getOffset(RingMember leader,
RingMember ringMember,
C client,
Consistency consistency,
byte[] prefix,
OffsetUnprefixedWALKeys keys) throws E;
PartitionResponse<CloseableStreamResponse> scan(RingMember leader,
RingMember ringMember,
C client,
Consistency consistency,
boolean compressed,
PrefixedKeyRanges ranges,
KeyValueFilter filter,
boolean hydrateValues) throws E;
PartitionResponse<CloseableStreamResponse> takeFromTransactionId(RingMember leader,
RingMember ringMember,
C client,
Map<RingMember, Long> membersTxId,
int limit) throws E;
PartitionResponse<CloseableStreamResponse> takePrefixFromTransactionId(RingMember leader,
RingMember ringMember,
C client,
byte[] prefix,
Map<RingMember, Long> membersTxId,
int limit) throws E;
PartitionResponse<CloseableLong> getApproximateCount(RingMember leader,
RingMember ringMember,
C client) throws E;
}