@Override public Future invokeOnPartitionOwner(Object operation, int partitionId) { checkNotNull(operation, "operation cannot be null"); checkNotNegative(partitionId, "partitionId"); Operation op = (Operation) operation; return operationService.invokeOnPartition(MapService.SERVICE_NAME, op, partitionId); }
@Override public ICompletableFuture<ReadResultSet<E>> readManyAsync( long startSequence, int minCount, int maxCount, IFunction<E, Boolean> filter) { checkSequence(startSequence); checkNotNegative(minCount, "minCount can't be smaller than 0"); checkTrue(maxCount >= minCount, "maxCount should be equal or larger than minCount"); checkTrue( minCount <= capacity(), "the minCount should be smaller than or equal to the capacity"); checkTrue(maxCount <= MAX_BATCH_SIZE, "maxCount can't be larger than " + MAX_BATCH_SIZE); ClientMessage request = RingbufferReadManyAsyncCodec.encodeRequest( name, startSequence, minCount, maxCount, toData(filter)); request.setPartitionId(partitionId); try { ClientInvocationFuture invocationFuture = new ClientInvocation(getClient(), request).invoke(); return new ClientDelegatingFuture<ReadResultSet<E>>( invocationFuture, getContext().getSerializationService(), readManyAsyncResponseDecoder); } catch (Exception e) { throw ExceptionUtil.rethrow(e); } }
@Override public InvocationBuilder createInvocationBuilder( String serviceName, Operation op, int partitionId) { checkNotNegative(partitionId, "Partition id cannot be negative!"); return new InvocationBuilderImpl(invocationContext, serviceName, op, partitionId); }