add watch on several keys, and discard status return

This commit is contained in:
Jonathan Leibiusky
2010-11-21 21:00:40 -03:00
parent 098de44a07
commit 970ea3adf4
6 changed files with 830 additions and 816 deletions

View File

@@ -396,8 +396,8 @@ public class BinaryClient extends Connection {
isInMulti = false; isInMulti = false;
} }
public void watch(final byte[] key) { public void watch(final byte[]... keys) {
sendCommand(WATCH, key); sendCommand(WATCH, keys);
} }
public void unwatch() { public void unwatch() {

View File

@@ -5,6 +5,7 @@ import java.util.Map;
public class BinaryTransaction { public class BinaryTransaction {
protected Client client = null; protected Client client = null;
protected boolean inTransaction = true;
public BinaryTransaction() { public BinaryTransaction() {
} }
@@ -424,7 +425,9 @@ public class BinaryTransaction {
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public void discard() { public String discard() {
client.discard(); client.discard();
inTransaction = false;
return client.getStatusCodeReply();
} }
} }

View File

@@ -360,8 +360,12 @@ public class Client extends BinaryClient {
zscore(SafeEncoder.encode(key), SafeEncoder.encode(member)); zscore(SafeEncoder.encode(key), SafeEncoder.encode(member));
} }
public void watch(final String key) { public void watch(final String... keys) {
watch(SafeEncoder.encode(key)); final byte[][] bargs = new byte[keys.length][];
for (int i = 0; i < bargs.length; i++) {
bargs[i] = SafeEncoder.encode(keys[i]);
}
watch(bargs);
} }
public void sort(final String key) { public void sort(final String key) {

View File

@@ -1669,8 +1669,8 @@ public class Jedis extends BinaryJedis implements JedisCommands {
client.disconnect(); client.disconnect();
} }
public String watch(final String key) { public String watch(final String... keys) {
client.watch(key); client.watch(keys);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }

View File

@@ -124,7 +124,7 @@ public class TransactionCommandsTest extends JedisCommandTestBase {
@Test @Test
public void watch() throws UnknownHostException, IOException { public void watch() throws UnknownHostException, IOException {
jedis.watch("mykey"); jedis.watch("mykey", "somekey");
Transaction t = jedis.multi(); Transaction t = jedis.multi();
nj.connect(); nj.connect();
@@ -197,4 +197,11 @@ public class TransactionCommandsTest extends JedisCommandTestBase {
jedis.multi(); jedis.multi();
jedis.ping(); jedis.ping();
} }
@Test
public void discard() {
Transaction t = jedis.multi();
String status = t.discard();
assertEquals("OK", status);
}
} }