Skip to content

Commit

Permalink
delete method now returns boolean value. deleteAsync method added
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikita committed Apr 11, 2015
1 parent 600eb79 commit fd5c610
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 17 deletions.
8 changes: 4 additions & 4 deletions src/main/java/org/redisson/RedissonCountDownLatch.java
Expand Up @@ -263,17 +263,17 @@ public Boolean execute(RedisConnection<Object, Object> conn) {
} }


@Override @Override
public void delete() { public boolean delete() {
connectionManager.write(getName(), new SyncOperation<Object, Void>() { return connectionManager.write(getName(), new SyncOperation<Object, Boolean>() {
@Override @Override
public Void execute(RedisConnection<Object, Object> conn) { public Boolean execute(RedisConnection<Object, Object> conn) {
conn.multi(); conn.multi();
conn.del(getName()); conn.del(getName());
conn.publish(getChannelName(), zeroCountMessage); conn.publish(getChannelName(), zeroCountMessage);
if (conn.exec().size() != 2) { if (conn.exec().size() != 2) {
throw new IllegalStateException(); throw new IllegalStateException();
} }
return null; return true;
} }
}); });
} }
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/org/redisson/RedissonLock.java
Expand Up @@ -490,8 +490,9 @@ public int getHoldCount() {
} }


@Override @Override
public void delete() { public boolean delete() {
forceUnlock(); forceUnlock();
return true;
} }


} }
22 changes: 14 additions & 8 deletions src/main/java/org/redisson/RedissonObject.java
Expand Up @@ -18,7 +18,8 @@
import io.netty.util.concurrent.Future; import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.Promise; import io.netty.util.concurrent.Promise;


import org.redisson.async.ResultOperation; import org.redisson.async.AsyncOperation;
import org.redisson.async.OperationListener;
import org.redisson.connection.ConnectionManager; import org.redisson.connection.ConnectionManager;
import org.redisson.core.RObject; import org.redisson.core.RObject;


Expand Down Expand Up @@ -48,17 +49,22 @@ public String getName() {
return name; return name;
} }


public void delete() { public boolean delete() {
delete(getName()); return connectionManager.get(deleteAsync());
} }


void delete(String name) { public Future<Boolean> deleteAsync() {
connectionManager.write(getName(), new ResultOperation<Long, Object>() { return connectionManager.writeAsync(getName(), new AsyncOperation<Object, Boolean>() {
@Override @Override
protected Future<Long> execute(RedisAsyncConnection<Object, Object> async) { public void execute(final Promise<Boolean> promise, RedisAsyncConnection<Object, Object> async) {
return async.del(getName()); async.del(getName()).addListener(new OperationListener<Object, Boolean, Object>(promise, async, this) {
@Override
public void onOperationComplete(Future<Object> future) throws Exception {
promise.setSuccess(((Number) future.get()).byteValue() == 1);
}
});
} }
}); });
} }

} }
4 changes: 2 additions & 2 deletions src/main/java/org/redisson/RedissonTopic.java
Expand Up @@ -92,8 +92,8 @@ public void removeListener(int listenerId) {
} }


@Override @Override
public void delete() { public boolean delete() {
// nothing to delete throw new UnsupportedOperationException();
} }


} }
6 changes: 5 additions & 1 deletion src/main/java/org/redisson/core/RObject.java
Expand Up @@ -15,6 +15,8 @@
*/ */
package org.redisson.core; package org.redisson.core;


import io.netty.util.concurrent.Future;

/** /**
* Base interface for all Redisson objects * Base interface for all Redisson objects
* *
Expand All @@ -33,6 +35,8 @@ public interface RObject {
/** /**
* Deletes the object * Deletes the object
*/ */
void delete(); boolean delete();

Future<Boolean> deleteAsync();


} }
3 changes: 2 additions & 1 deletion src/test/java/org/redisson/RedissonBucketTest.java
Expand Up @@ -25,8 +25,9 @@ public void testSetDelete() {
String value = "somevalue"; String value = "somevalue";
bucket.set(value); bucket.set(value);
Assert.assertEquals(value, bucket.get()); Assert.assertEquals(value, bucket.get());
bucket.delete(); Assert.assertTrue(bucket.delete());
Assert.assertNull(bucket.get()); Assert.assertNull(bucket.get());
Assert.assertFalse(bucket.delete());
} }




Expand Down

0 comments on commit fd5c610

Please sign in to comment.