Class GetWithMetadataOperation<V>
- java.lang.Object
-
- java.util.concurrent.CompletableFuture<T>
-
- org.infinispan.client.hotrod.impl.operations.HotRodOperation<T>
-
- org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation<T>
-
- org.infinispan.client.hotrod.impl.operations.StatsAffectingRetryingOperation<T>
-
- org.infinispan.client.hotrod.impl.operations.AbstractKeyOperation<MetadataValue<V>>
-
- org.infinispan.client.hotrod.impl.operations.GetWithMetadataOperation<V>
-
- All Implemented Interfaces:
Runnable,CompletionStage<MetadataValue<V>>,Future<MetadataValue<V>>,RetryAwareCompletionStage<MetadataValue<V>>,HotRodConstants,ChannelOperation
@Immutable public class GetWithMetadataOperation<V> extends AbstractKeyOperation<MetadataValue<V>> implements RetryAwareCompletionStage<MetadataValue<V>>
Corresponds to getWithMetadata operation as described by Hot Rod protocol specification.- Since:
- 5.2
- Author:
- Tristan Tarrant
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.util.concurrent.CompletableFuture
CompletableFuture.AsynchronousCompletionTask
-
Nested classes/interfaces inherited from interface org.infinispan.client.hotrod.impl.protocol.HotRodConstants
HotRodConstants.Names
-
-
Field Summary
-
Fields inherited from class org.infinispan.client.hotrod.impl.operations.AbstractKeyOperation
key, keyBytes
-
Fields inherited from class org.infinispan.client.hotrod.impl.operations.StatsAffectingRetryingOperation
clientStatistics
-
Fields inherited from class org.infinispan.client.hotrod.impl.operations.HotRodOperation
cfg, channelFactory, codec, header, timeoutFuture
-
Fields inherited from interface org.infinispan.client.hotrod.impl.protocol.HotRodConstants
ADD_BLOOM_FILTER_NEAR_CACHE_LISTENER_REQUEST, ADD_BLOOM_FILTER_NEAR_CACHE_LISTENER_RESPONSE, ADD_CLIENT_LISTENER_REQUEST, ADD_CLIENT_LISTENER_RESPONSE, AUTH_MECH_LIST_REQUEST, AUTH_MECH_LIST_RESPONSE, AUTH_REQUEST, AUTH_RESPONSE, BULK_GET_KEYS_REQUEST, BULK_GET_KEYS_RESPONSE, BULK_GET_REQUEST, BULK_GET_RESPONSE, CACHE_ENTRY_CREATED_EVENT_RESPONSE, CACHE_ENTRY_EXPIRED_EVENT_RESPONSE, CACHE_ENTRY_MODIFIED_EVENT_RESPONSE, CACHE_ENTRY_REMOVED_EVENT_RESPONSE, CLEAR_REQUEST, CLEAR_RESPONSE, CLIENT_INTELLIGENCE_BASIC, CLIENT_INTELLIGENCE_HASH_DISTRIBUTION_AWARE, CLIENT_INTELLIGENCE_TOPOLOGY_AWARE, COMMAND_TIMEOUT_STATUS, COMMIT_REQUEST, COMMIT_RESPONSE, CONTAINS_KEY_REQUEST, CONTAINS_KEY_RESPONSE, COUNTER_ADD_AND_GET_REQUEST, COUNTER_ADD_AND_GET_RESPONSE, COUNTER_ADD_LISTENER_REQUEST, COUNTER_ADD_LISTENER_RESPONSE, COUNTER_CAS_REQUEST, COUNTER_CAS_RESPONSE, COUNTER_CREATE_REQUEST, COUNTER_CREATE_RESPONSE, COUNTER_EVENT_RESPONSE, COUNTER_GET_CONFIGURATION_REQUEST, COUNTER_GET_CONFIGURATION_RESPONSE, COUNTER_GET_NAMES_REQUEST, COUNTER_GET_NAMES_RESPONSE, COUNTER_GET_REQUEST, COUNTER_GET_RESPONSE, COUNTER_IS_DEFINED_REQUEST, COUNTER_IS_DEFINED_RESPONSE, COUNTER_REMOVE_LISTENER_REQUEST, COUNTER_REMOVE_LISTENER_RESPONSE, COUNTER_REMOVE_REQUEST, COUNTER_REMOVE_RESPONSE, COUNTER_RESET_REQUEST, COUNTER_RESET_RESPONSE, DEFAULT_CACHE_NAME_BYTES, DEFAULT_CACHE_TOPOLOGY, ERROR_RESPONSE, EXEC_REQUEST, EXEC_RESPONSE, FETCH_TX_RECOVERY_REQUEST, FETCH_TX_RECOVERY_RESPONSE, FORGET_TX_REQUEST, FORGET_TX_RESPONSE, GET_ALL_REQUEST, GET_ALL_RESPONSE, GET_REQUEST, GET_RESPONSE, GET_STREAM_REQUEST, GET_STREAM_RESPONSE, GET_WITH_METADATA, GET_WITH_METADATA_RESPONSE, GET_WITH_VERSION, GET_WITH_VERSION_RESPONSE, HOTROD_STRING_CHARSET, ILLEGAL_LIFECYCLE_STATE, ILLEGAL_OP_CODE, INFINITE_LIFESPAN, INFINITE_MAXIDLE, INVALID_ITERATION, INVALID_MAGIC_OR_MESSAGE_ID_STATUS, ITERATION_END_REQUEST, ITERATION_END_RESPONSE, ITERATION_NEXT_REQUEST, ITERATION_NEXT_RESPONSE, ITERATION_START_REQUEST, ITERATION_START_RESPONSE, KEY_DOES_NOT_EXIST_STATUS, NO_ERROR_STATUS, NO_ERROR_STATUS_OBJ_STORAGE, NODE_SUSPECTED, NOT_EXECUTED_WITH_PREVIOUS, NOT_EXECUTED_WITH_PREVIOUS_OBJ_STORAGE, NOT_PUT_REMOVED_REPLACED_STATUS, PING_REQUEST, PING_RESPONSE, PREPARE_REQUEST, PREPARE_RESPONSE, PREPARE_TX_2_REQUEST, PREPARE_TX_2_RESPONSE, PUT_ALL_REQUEST, PUT_ALL_RESPONSE, PUT_IF_ABSENT_REQUEST, PUT_IF_ABSENT_RESPONSE, PUT_REQUEST, PUT_RESPONSE, PUT_STREAM_REQUEST, PUT_STREAM_RESPONSE, QUERY_REQUEST, QUERY_RESPONSE, REMOVE_CLIENT_LISTENER_REQUEST, REMOVE_CLIENT_LISTENER_RESPONSE, REMOVE_IF_UNMODIFIED_REQUEST, REMOVE_IF_UNMODIFIED_RESPONSE, REMOVE_REQUEST, REMOVE_RESPONSE, REPLACE_IF_UNMODIFIED_REQUEST, REPLACE_IF_UNMODIFIED_RESPONSE, REPLACE_REQUEST, REPLACE_RESPONSE, REQUEST_MAGIC, REQUEST_PARSING_ERROR_STATUS, RESPONSE_MAGIC, ROLLBACK_REQUEST, ROLLBACK_RESPONSE, SERVER_ERROR_STATUS, SIZE_REQUEST, SIZE_RESPONSE, STATS_REQUEST, STATS_RESPONSE, SUCCESS_WITH_PREVIOUS, SUCCESS_WITH_PREVIOUS_OBJ_STORAGE, SWITCH_CLUSTER_TOPOLOGY, UNKNOWN_COMMAND_STATUS, UNKNOWN_VERSION_STATUS, UPDATE_BLOOM_FILTER_REQUEST, UPDATE_BLOOM_FILTER_RESPONSE, VERSION_20, VERSION_21, VERSION_22, VERSION_23, VERSION_24, VERSION_25, VERSION_26, VERSION_27, VERSION_28, VERSION_29, VERSION_30, VERSION_31, VERSION_40
-
-
Constructor Summary
Constructors Constructor Description GetWithMetadataOperation(Codec codec, ChannelFactory channelFactory, Object key, byte[] keyBytes, byte[] cacheName, AtomicReference<ClientTopology> clientTopology, int flags, Configuration cfg, DataFormat dataFormat, ClientStatistics clientStatistics, SocketAddress preferredServer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacceptResponse(io.netty.buffer.ByteBuf buf, short status, HeaderDecoder decoder)protected voidexecuteOperation(io.netty.channel.Channel channel)Perform the operation-specific request/response I/O on the specified channel.protected voidfetchChannelAndInvoke(int retryCount, Set<SocketAddress> failedServers)RetryAwareCompletionStage<MetadataValue<V>>internalExecute()static <V> MetadataValue<V>readMetadataValue(io.netty.buffer.ByteBuf buf, short status, DataFormat dataFormat, org.infinispan.commons.configuration.ClassAllowList classAllowList)BooleanwasRetried()Returns whether this operation had to be retried on another server than the first one picked.-
Methods inherited from class org.infinispan.client.hotrod.impl.operations.AbstractKeyOperation
addParams, returnPossiblePrevValue, returnVersionedOperationResponse
-
Methods inherited from class org.infinispan.client.hotrod.impl.operations.StatsAffectingRetryingOperation
scheduleRead, statsDataRead, statsDataRead, statsDataRemove, statsDataStore, statsDataStore
-
Methods inherited from class org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation
cancel, channelInactive, exceptionCaught, execute, handleException, invoke, logAndRetryOrFail, reset
-
Methods inherited from class org.infinispan.client.hotrod.impl.operations.HotRodOperation
cacheName, closeChannelForCause, complete, completeExceptionally, dataFormat, flags, getCodec, header, isServerError, releaseChannel, run, scheduleTimeout, sendArrayOperation, sendHeader, sendHeaderAndRead, toString
-
Methods inherited from class java.util.concurrent.CompletableFuture
acceptEither, acceptEitherAsync, acceptEitherAsync, allOf, anyOf, applyToEither, applyToEitherAsync, applyToEitherAsync, cancel, completeAsync, completeAsync, completedFuture, completedStage, completeOnTimeout, copy, defaultExecutor, delayedExecutor, delayedExecutor, exceptionally, failedFuture, failedStage, get, get, getNow, getNumberOfDependents, handle, handleAsync, handleAsync, isCancelled, isCompletedExceptionally, isDone, join, minimalCompletionStage, newIncompleteFuture, obtrudeException, obtrudeValue, orTimeout, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, runAsync, runAsync, supplyAsync, supplyAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, toCompletableFuture, whenComplete, whenCompleteAsync, whenCompleteAsync
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.concurrent.CompletionStage
acceptEither, acceptEitherAsync, acceptEitherAsync, applyToEither, applyToEitherAsync, applyToEitherAsync, exceptionally, handle, handleAsync, handleAsync, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, toCompletableFuture, whenComplete, whenCompleteAsync, whenCompleteAsync
-
-
-
-
Constructor Detail
-
GetWithMetadataOperation
public GetWithMetadataOperation(Codec codec, ChannelFactory channelFactory, Object key, byte[] keyBytes, byte[] cacheName, AtomicReference<ClientTopology> clientTopology, int flags, Configuration cfg, DataFormat dataFormat, ClientStatistics clientStatistics, SocketAddress preferredServer)
-
-
Method Detail
-
internalExecute
public RetryAwareCompletionStage<MetadataValue<V>> internalExecute()
-
executeOperation
protected void executeOperation(io.netty.channel.Channel channel)
Description copied from class:RetryOnFailureOperationPerform the operation-specific request/response I/O on the specified channel. If an error occurs during I/O, this class will detect it and retry the operation with a different channel by invoking the executeOperation method again.- Specified by:
executeOperationin classRetryOnFailureOperation<MetadataValue<V>>- Parameters:
channel- the channel to use for I/O
-
fetchChannelAndInvoke
protected void fetchChannelAndInvoke(int retryCount, Set<SocketAddress> failedServers)- Overrides:
fetchChannelAndInvokein classAbstractKeyOperation<MetadataValue<V>>
-
acceptResponse
public void acceptResponse(io.netty.buffer.ByteBuf buf, short status, HeaderDecoder decoder)- Specified by:
acceptResponsein classHotRodOperation<MetadataValue<V>>
-
readMetadataValue
public static <V> MetadataValue<V> readMetadataValue(io.netty.buffer.ByteBuf buf, short status, DataFormat dataFormat, org.infinispan.commons.configuration.ClassAllowList classAllowList)
-
wasRetried
public Boolean wasRetried()
Description copied from interface:RetryAwareCompletionStageReturns whether this operation had to be retried on another server than the first one picked.- Specified by:
wasRetriedin interfaceRetryAwareCompletionStage<V>- Returns:
trueif the operation had to be retried on another server,falseif it completed without retry ornullif the operation is not yet complete.
-
-