Change ScanResult's cursor type to byte[]

* It's less probabilities to conversion with byte[] <-> ?
This commit is contained in:
Jungtaek Lim
2014-03-05 08:30:09 +09:00
parent 0cd32a6103
commit d9813a09dc

View File

@@ -5,7 +5,7 @@ import java.util.List;
import redis.clients.util.SafeEncoder;
public class ScanResult<T> {
private String cursor;
private byte[] cursor;
private List<T> results;
@Deprecated
@@ -15,20 +15,18 @@ public class ScanResult<T> {
* @see https://github.com/xetorthio/jedis/issues/531
*/
public ScanResult(int cursor, List<T> results) {
this.cursor = String.valueOf(cursor);
this.results = results;
this(Protocol.toByteArray(cursor), results);
}
public ScanResult(String cursor, List<T> results) {
this(SafeEncoder.encode(cursor), results);
}
public ScanResult(byte[] cursor, List<T> results) {
this.cursor = SafeEncoder.encode(cursor);
this.results = results;
}
public ScanResult(String cursor, List<T> results) {
this.cursor = cursor;
this.results = results;
}
@Deprecated
/**
* This method is deprecated due to bug (scan cursor should be unsigned long)
@@ -37,18 +35,18 @@ public class ScanResult<T> {
* @return int(currently), but will be changed to String, so be careful to prepare!
*/
public int getCursor() {
return Integer.parseInt(cursor);
return Integer.parseInt(getStringCursor());
}
/**
* FIXME: This method should be changed to getCursor() on next major release
*/
public String getStringCursor() {
return cursor;
return SafeEncoder.encode(cursor);
}
public byte[] getBinaryCursor() {
return SafeEncoder.encode(cursor);
return cursor;
}
public List<T> getResult() {