package org.handwerkszeug.riak.transport.rest;
import org.handwerkszeug.riak._;
import org.handwerkszeug.riak.model.Range;
import org.handwerkszeug.riak.model.RiakFuture;
import org.handwerkszeug.riak.model.RiakObject;
import org.handwerkszeug.riak.op.RiakResponseHandler;
/**
* @author taichi
* @see <a href="http://wiki.basho.com/Luwak.html">Luwak</a>
* @see <a
* href="https://github.com/basho/luwak/blob/master/src/luwak_wm_file.erl">luwak_wm_file.erl</a>
*/
public interface LuwakSupport {
/**
* Reads a Luwak file
*/
RiakFuture getStream(String key, StreamResponseHandler handler);
/**
* Reads a Luwak file by defined Range.
*/
RiakFuture getStream(String key, Range range, StreamResponseHandler handler);
/**
* Stores a new file with a random Luwak-assigned key.
*/
RiakFuture postStream(RiakObject<InputStreamHandler> content,
RiakResponseHandler<String> handler);
/**
* Stores a file with an existing or user-defined key.
*/
RiakFuture putStream(RiakObject<InputStreamHandler> content,
RiakResponseHandler<_> handler);
/**
* Deletes a file.
*/
RiakFuture delete(String key, RiakResponseHandler<_> handler);
}