Skip to content

Commit

Permalink
RBitSetReactive index type changed to long
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikita committed Jan 1, 2016
1 parent 4fee847 commit ffee2d9
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 deletions.
18 changes: 9 additions & 9 deletions src/main/java/org/redisson/api/RBitSetReactive.java
Expand Up @@ -30,29 +30,29 @@ public interface RBitSetReactive extends RExpirableReactive {


Publisher<byte[]> toByteArray(); Publisher<byte[]> toByteArray();


Publisher<Integer> length(); Publisher<Long> length();


Publisher<Void> set(int fromIndex, int toIndex, boolean value); Publisher<Void> set(long fromIndex, long toIndex, boolean value);


Publisher<Void> clear(int fromIndex, int toIndex); Publisher<Void> clear(long fromIndex, long toIndex);


Publisher<Void> set(BitSet bs); Publisher<Void> set(BitSet bs);


Publisher<Void> not(); Publisher<Void> not();


Publisher<Void> set(int fromIndex, int toIndex); Publisher<Void> set(long fromIndex, long toIndex);


Publisher<Integer> size(); Publisher<Integer> size();


Publisher<Boolean> get(int bitIndex); Publisher<Boolean> get(long bitIndex);


Publisher<Void> set(int bitIndex); Publisher<Void> set(long bitIndex);


Publisher<Void> set(int bitIndex, boolean value); Publisher<Void> set(long bitIndex, boolean value);


Publisher<Integer> cardinality(); Publisher<Long> cardinality();


Publisher<Void> clear(int bitIndex); Publisher<Void> clear(long bitIndex);


Publisher<Void> clear(); Publisher<Void> clear();


Expand Down
24 changes: 12 additions & 12 deletions src/main/java/org/redisson/reactive/RedissonBitSetReactive.java
Expand Up @@ -37,11 +37,11 @@ public RedissonBitSetReactive(CommandReactiveExecutor connectionManager, String
super(connectionManager, name); super(connectionManager, name);
} }


public Publisher<Boolean> get(int bitIndex) { public Publisher<Boolean> get(long bitIndex) {
return commandExecutor.readReactive(getName(), codec, RedisCommands.GETBIT, getName(), bitIndex); return commandExecutor.readReactive(getName(), codec, RedisCommands.GETBIT, getName(), bitIndex);
} }


public Publisher<Void> set(int bitIndex, boolean value) { public Publisher<Void> set(long bitIndex, boolean value) {
return commandExecutor.writeReactive(getName(), codec, RedisCommands.SETBIT_VOID, getName(), bitIndex, value ? 1 : 0); return commandExecutor.writeReactive(getName(), codec, RedisCommands.SETBIT_VOID, getName(), bitIndex, value ? 1 : 0);
} }


Expand Down Expand Up @@ -75,8 +75,8 @@ private static byte[] toByteArrayReverse(BitSet bits) {
} }


@Override @Override
public Publisher<Integer> length() { public Publisher<Long> length() {
return commandExecutor.evalReadReactive(getName(), codec, RedisCommands.EVAL_INTEGER, return commandExecutor.evalReadReactive(getName(), codec, RedisCommands.EVAL_LONG,
"local fromBit = redis.call('bitpos', KEYS[1], 1, -1);" "local fromBit = redis.call('bitpos', KEYS[1], 1, -1);"
+ "local toBit = 8*(fromBit/8 + 1) - fromBit % 8;" + "local toBit = 8*(fromBit/8 + 1) - fromBit % 8;"
+ "for i = toBit, fromBit, -1 do " + "for i = toBit, fromBit, -1 do "
Expand All @@ -89,17 +89,17 @@ public Publisher<Integer> length() {
} }


@Override @Override
public Publisher<Void> set(int fromIndex, int toIndex, boolean value) { public Publisher<Void> set(long fromIndex, long toIndex, boolean value) {
if (value) { if (value) {
return set(fromIndex, toIndex); return set(fromIndex, toIndex);
} }
return clear(fromIndex, toIndex); return clear(fromIndex, toIndex);
} }


@Override @Override
public Publisher<Void> clear(int fromIndex, int toIndex) { public Publisher<Void> clear(long fromIndex, long toIndex) {
CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager()); CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager());
for (int i = fromIndex; i < toIndex; i++) { for (long i = fromIndex; i < toIndex; i++) {
executorService.writeAsync(getName(), codec, RedisCommands.SETBIT_VOID, getName(), i, 0); executorService.writeAsync(getName(), codec, RedisCommands.SETBIT_VOID, getName(), i, 0);
} }
return new NettyFuturePublisher<Void>(executorService.executeAsyncVoid()); return new NettyFuturePublisher<Void>(executorService.executeAsyncVoid());
Expand All @@ -116,9 +116,9 @@ public Publisher<Void> not() {
} }


@Override @Override
public Publisher<Void> set(int fromIndex, int toIndex) { public Publisher<Void> set(long fromIndex, long toIndex) {
CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager()); CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager());
for (int i = fromIndex; i < toIndex; i++) { for (long i = fromIndex; i < toIndex; i++) {
executorService.writeAsync(getName(), codec, RedisCommands.SETBIT_VOID, getName(), i, 1); executorService.writeAsync(getName(), codec, RedisCommands.SETBIT_VOID, getName(), i, 1);
} }
return new NettyFuturePublisher<Void>(executorService.executeAsyncVoid()); return new NettyFuturePublisher<Void>(executorService.executeAsyncVoid());
Expand All @@ -130,17 +130,17 @@ public Publisher<Integer> size() {
} }


@Override @Override
public Publisher<Void> set(int bitIndex) { public Publisher<Void> set(long bitIndex) {
return set(bitIndex, true); return set(bitIndex, true);
} }


@Override @Override
public Publisher<Integer> cardinality() { public Publisher<Long> cardinality() {
return commandExecutor.readReactive(getName(), codec, RedisCommands.BITCOUNT, getName()); return commandExecutor.readReactive(getName(), codec, RedisCommands.BITCOUNT, getName());
} }


@Override @Override
public Publisher<Void> clear(int bitIndex) { public Publisher<Void> clear(long bitIndex) {
return set(bitIndex, false); return set(bitIndex, false);
} }


Expand Down

0 comments on commit ffee2d9

Please sign in to comment.