@Override @SuppressWarnings({"deprecation"}) public <SuppliedValue, Result> Result aggregate(Supplier<K, V, SuppliedValue> supplier, Aggregation<K, SuppliedValue, Result> aggregation) { JobTracker jobTracker = getClient().getJobTracker("hz::aggregation-map-" + name); return aggregate(supplier, aggregation, jobTracker); }
@Override @SuppressWarnings({"deprecation"}) public <SuppliedValue, Result> Result aggregate(Supplier<K, V, SuppliedValue> supplier, Aggregation<K, SuppliedValue, Result> aggregation) { JobTracker jobTracker = getClient().getJobTracker("hz::aggregation-map-" + name); return aggregate(supplier, aggregation, jobTracker); }
protected void putAllInternal(Map<? extends K, ? extends V> map, Map<Integer, List<Map.Entry<Data, Data>>> entryMap) { List<Future<?>> futures = new ArrayList<Future<?>>(entryMap.size()); for (Entry<Integer, List<Map.Entry<Data, Data>>> entry : entryMap.entrySet()) { Integer partitionId = entry.getKey(); // if there is only one entry, consider how we can use MapPutRequest // without having to get back the return value ClientMessage request = MapPutAllCodec.encodeRequest(name, entry.getValue()); futures.add(new ClientInvocation(getClient(), request, getName(), partitionId).invoke()); } try { for (Future<?> future : futures) { future.get(); } } catch (Exception e) { throw rethrow(e); } }
protected void putAllInternal(Map<? extends K, ? extends V> map, Map<Integer, List<Map.Entry<Data, Data>>> entryMap) { List<Future<?>> futures = new ArrayList<Future<?>>(entryMap.size()); for (Entry<Integer, List<Map.Entry<Data, Data>>> entry : entryMap.entrySet()) { Integer partitionId = entry.getKey(); // if there is only one entry, consider how we can use MapPutRequest // without having to get back the return value ClientMessage request = MapPutAllCodec.encodeRequest(name, entry.getValue()); futures.add(new ClientInvocation(getClient(), request, getName(), partitionId).invoke()); } try { for (Future<?> future : futures) { future.get(); } } catch (Exception e) { throw rethrow(e); } }
protected void getAllInternal(Set<K> keys, Map<Integer, List<Data>> partitionToKeyData, List<Object> resultingKeyValuePairs) { if (partitionToKeyData.isEmpty()) { fillPartitionToKeyData(keys, partitionToKeyData, null, null); } List<Future<ClientMessage>> futures = new ArrayList<Future<ClientMessage>>(partitionToKeyData.size()); for (Map.Entry<Integer, List<Data>> entry : partitionToKeyData.entrySet()) { int partitionId = entry.getKey(); List<Data> keyList = entry.getValue(); if (!keyList.isEmpty()) { ClientMessage request = MapGetAllCodec.encodeRequest(name, keyList); futures.add(new ClientInvocation(getClient(), request, getName(), partitionId).invoke()); } } for (Future<ClientMessage> future : futures) { try { ClientMessage response = future.get(); MapGetAllCodec.ResponseParameters resultParameters = MapGetAllCodec.decodeResponse(response); for (Entry<Data, Data> entry : resultParameters.response) { resultingKeyValuePairs.add(entry.getKey()); resultingKeyValuePairs.add(entry.getValue()); } } catch (Exception e) { throw rethrow(e); } } }
protected void getAllInternal(Set<K> keys, Map<Integer, List<Data>> partitionToKeyData, List<Object> resultingKeyValuePairs) { if (partitionToKeyData.isEmpty()) { fillPartitionToKeyData(keys, partitionToKeyData, null, null); } List<Future<ClientMessage>> futures = new ArrayList<Future<ClientMessage>>(partitionToKeyData.size()); for (Map.Entry<Integer, List<Data>> entry : partitionToKeyData.entrySet()) { int partitionId = entry.getKey(); List<Data> keyList = entry.getValue(); if (!keyList.isEmpty()) { ClientMessage request = MapGetAllCodec.encodeRequest(name, keyList); futures.add(new ClientInvocation(getClient(), request, getName(), partitionId).invoke()); } } for (Future<ClientMessage> future : futures) { try { ClientMessage response = future.get(); MapGetAllCodec.ResponseParameters resultParameters = MapGetAllCodec.decodeResponse(response); for (Entry<Data, Data> entry : resultParameters.response) { resultingKeyValuePairs.add(entry.getKey()); resultingKeyValuePairs.add(entry.getValue()); } } catch (Exception e) { throw rethrow(e); } } }
@Override protected void onInitialize() { super.onInitialize(); lockReferenceIdGenerator = getClient().getLockReferenceIdGenerator(); queryCacheContext = getContext().getQueryCacheContext(); eventJournalReadResponseDecoder = new ClientMessageDecoder() { @Override public ReadResultSet<?> decodeClientMessage(ClientMessage message) { final MapEventJournalReadCodec.ResponseParameters params = MapEventJournalReadCodec.decodeResponse(message); final PortableReadResultSet<?> resultSet = new PortableReadResultSet<Object>( params.readCount, params.items, params.itemSeqs, params.nextSeqExist ? params.nextSeq : ReadResultSet.SEQUENCE_UNAVAILABLE); resultSet.setSerializationService(getSerializationService()); return resultSet; } }; eventJournalSubscribeResponseDecoder = new ClientMessageDecoder() { @Override public EventJournalInitialSubscriberState decodeClientMessage(ClientMessage message) { final ResponseParameters resp = MapEventJournalSubscribeCodec.decodeResponse(message); return new EventJournalInitialSubscriberState(resp.oldestSequence, resp.newestSequence); } }; }
private <T> T invoke(ClientMessage clientMessage, Object key, long invocationTimeoutSeconds) { final int partitionId = getContext().getPartitionService().getPartitionId(key); try { ClientInvocation clientInvocation = new ClientInvocation(getClient(), clientMessage, getName(), partitionId); clientInvocation.setInvocationTimeoutMillis(invocationTimeoutSeconds); final Future future = clientInvocation.invoke(); return (T) future.get(); } catch (Exception e) { throw rethrow(e); } }
private <T> T invoke(ClientMessage clientMessage, Object key, long invocationTimeoutSeconds) { final int partitionId = getContext().getPartitionService().getPartitionId(key); try { ClientInvocation clientInvocation = new ClientInvocation(getClient(), clientMessage, getName(), partitionId); clientInvocation.setInvocationTimeoutMillis(invocationTimeoutSeconds); final Future future = clientInvocation.invoke(); return (T) future.get(); } catch (Exception e) { throw rethrow(e); } }
@Override protected void onInitialize() { super.onInitialize(); lockReferenceIdGenerator = getClient().getLockReferenceIdGenerator(); queryCacheContext = getContext().getQueryCacheContext(); eventJournalReadResponseDecoder = new ClientMessageDecoder() { @Override public ReadResultSet<?> decodeClientMessage(ClientMessage message) { final MapEventJournalReadCodec.ResponseParameters params = MapEventJournalReadCodec.decodeResponse(message); final PortableReadResultSet<?> resultSet = new PortableReadResultSet<Object>( params.readCount, params.items, params.itemSeqs, params.nextSeqExist ? params.nextSeq : ReadResultSet.SEQUENCE_UNAVAILABLE); resultSet.setSerializationService(getSerializationService()); return resultSet; } }; eventJournalSubscribeResponseDecoder = new ClientMessageDecoder() { @Override public EventJournalInitialSubscriberState decodeClientMessage(ClientMessage message) { final ResponseParameters resp = MapEventJournalSubscribeCodec.decodeResponse(message); return new EventJournalInitialSubscriberState(resp.oldestSequence, resp.newestSequence); } }; }
@Override public ICompletableFuture<EventJournalInitialSubscriberState> subscribeToEventJournal(int partitionId) { final ClientMessage request = MapEventJournalSubscribeCodec.encodeRequest(name); final ClientInvocationFuture fut = new ClientInvocation(getClient(), request, getName(), partitionId).invoke(); return new ClientDelegatingFuture<EventJournalInitialSubscriberState>(fut, getSerializationService(), eventJournalSubscribeResponseDecoder); }
private ClientInvocationFuture invokeOnKeyOwner(ClientMessage request, Data keyData) { int partitionId = getContext().getPartitionService().getPartitionId(keyData); ClientInvocation clientInvocation = new ClientInvocation(getClient(), request, getName(), partitionId); return clientInvocation.invoke(); }
/** * Async version of {@link #executeOnKeys}. */ public ICompletableFuture<Map<K, Object>> submitToKeys(Set<K> keys, EntryProcessor entryProcessor) { checkNotNull(keys, NULL_KEY_IS_NOT_ALLOWED); if (keys.isEmpty()) { return new SimpleCompletedFuture<Map<K, Object>>(Collections.<K, Object>emptyMap()); } Collection<Data> dataCollection = objectToDataCollection(keys, getSerializationService()); ClientMessage request = MapExecuteOnKeysCodec.encodeRequest(name, toData(entryProcessor), dataCollection); ClientInvocationFuture future = new ClientInvocation(getClient(), request, getName()).invoke(); return new ClientDelegatingFuture<Map<K, Object>>(future, getSerializationService(), submitToKeysResponseDecoder); }
@Override public ICompletableFuture<EventJournalInitialSubscriberState> subscribeToEventJournal(int partitionId) { final ClientMessage request = MapEventJournalSubscribeCodec.encodeRequest(name); final ClientInvocationFuture fut = new ClientInvocation(getClient(), request, getName(), partitionId).invoke(); return new ClientDelegatingFuture<EventJournalInitialSubscriberState>(fut, getSerializationService(), eventJournalSubscribeResponseDecoder); }
private ClientInvocationFuture invokeOnKeyOwner(ClientMessage request, Data keyData) { int partitionId = getContext().getPartitionService().getPartitionId(keyData); ClientInvocation clientInvocation = new ClientInvocation(getClient(), request, getName(), partitionId); return clientInvocation.invoke(); }
/** * Async version of {@link #executeOnKeys}. */ public ICompletableFuture<Map<K, Object>> submitToKeys(Set<K> keys, EntryProcessor entryProcessor) { checkNotNull(keys, NULL_KEY_IS_NOT_ALLOWED); if (keys.isEmpty()) { return new SimpleCompletedFuture<Map<K, Object>>(Collections.<K, Object>emptyMap()); } Collection<Data> dataCollection = objectToDataCollection(keys, getSerializationService()); ClientMessage request = MapExecuteOnKeysCodec.encodeRequest(name, toData(entryProcessor), dataCollection); ClientInvocationFuture future = new ClientInvocation(getClient(), request, getName()).invoke(); return new ClientDelegatingFuture<Map<K, Object>>(future, getSerializationService(), submitToKeysResponseDecoder); }
@Override public <T> ICompletableFuture<ReadResultSet<T>> readFromEventJournal( long startSequence, int minSize, int maxSize, int partitionId, com.hazelcast.util.function.Predicate<? super EventJournalMapEvent<K, V>> predicate, Projection<? super EventJournalMapEvent<K, V>, ? extends T> projection ) { if (maxSize < minSize) { throw new IllegalArgumentException("maxSize " + maxSize + " must be greater or equal to minSize " + minSize); } final SerializationService ss = getSerializationService(); final ClientMessage request = MapEventJournalReadCodec.encodeRequest( name, startSequence, minSize, maxSize, ss.toData(predicate), ss.toData(projection)); final ClientInvocationFuture fut = new ClientInvocation(getClient(), request, getName(), partitionId).invoke(); return new ClientDelegatingFuture<ReadResultSet<T>>(fut, ss, eventJournalReadResponseDecoder); }
@Override public <T> ICompletableFuture<ReadResultSet<T>> readFromEventJournal( long startSequence, int minSize, int maxSize, int partitionId, com.hazelcast.util.function.Predicate<? super EventJournalMapEvent<K, V>> predicate, Projection<? super EventJournalMapEvent<K, V>, ? extends T> projection ) { if (maxSize < minSize) { throw new IllegalArgumentException("maxSize " + maxSize + " must be greater or equal to minSize " + minSize); } final SerializationService ss = getSerializationService(); final ClientMessage request = MapEventJournalReadCodec.encodeRequest( name, startSequence, minSize, maxSize, ss.toData(predicate), ss.toData(projection)); final ClientInvocationFuture fut = new ClientInvocation(getClient(), request, getName(), partitionId).invoke(); return new ClientDelegatingFuture<ReadResultSet<T>>(fut, ss, eventJournalReadResponseDecoder); }