multi/exec block return formatted responses

This commit is contained in:
Jonathan Leibiusky
2011-04-06 01:38:19 -03:00
parent 6707b62342
commit 3fb7a52017
5 changed files with 1094 additions and 661 deletions

View File

@@ -1,30 +1,19 @@
package redis.clients.jedis;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import redis.clients.jedis.BinaryClient.LIST_POSITION;
public class Pipeline {
public class Pipeline extends Queable {
private Client client;
private Queue<Response<?>> pipelinedResponses = new LinkedList<Response<?>>();
public void setClient(Client client) {
this.client = client;
}
private Response<?> generateResponse(Object data) {
Response<?> response = pipelinedResponses.poll();
if (response != null) {
response.set(data);
}
return response;
}
public List<Object> sync() {
List<Object> unformatted = client.getAll();
List<Object> formatted = new ArrayList<Object>();
@@ -34,12 +23,6 @@ public class Pipeline {
return formatted;
}
private <T> Response<T> getResponse(Builder<T> builder) {
Response<T> lr = new Response<T>(builder);
pipelinedResponses.add(lr);
return lr;
}
public Response<Long> append(String key, String value) {
client.append(key, value);
return getResponse(BuilderFactory.LONG);