Interface ReplicableCommand

All Superinterfaces:
TracedCommand
All Known Subinterfaces:
DataCommand, FlagAffectedCommand, GlobalRpcCommand, RemoteLockCommand, TopologyAffectedCommand, TransactionalRemoteLockCommand, VisitableCommand
All Known Implementing Classes:
org.infinispan.commands.read.AbstractDataCommand, AbstractFlagAffectedCommand, AbstractTopologyAffectedCommand, org.infinispan.commands.remote.BaseRpcCommand, ForwardCommitCommand, ForwardRollbackCommand, HeartBeatCommand, MultiClusterEventCommand, ReplicableManagerFunctionCommand, ReplicableRunnableCommand, TouchCommand, XSiteAmendOfflineStatusCommand, XSiteAutoTransferStatusCommand, XSiteBringOnlineCommand, XSiteLocalEventCommand, XSiteOfflineStatusCommand, XSiteSetStateTransferModeCommand, XSiteStatePushCommand, XSiteStateTransferCancelSendCommand, XSiteStateTransferClearStatusCommand, XSiteStateTransferFinishReceiveCommand, XSiteStateTransferFinishSendCommand, XSiteStateTransferRestartSendingCommand, XSiteStateTransferStartReceiveCommand, XSiteStateTransferStartSendCommand, XSiteStateTransferStatusRequestCommand, XSiteStatusCommand, XSiteTakeOfflineCommand

public interface ReplicableCommand extends TracedCommand
The core of the command-based cache framework. Commands correspond to specific areas of functionality in the cache, and can be replicated using the RpcManager
Since:
4.0
Author:
Mircea.Markus@jboss.com, Manik Surtani
  • Method Details

    • invokeAsync

      @Deprecated(forRemoval=true, since="11.0") default CompletableFuture<Object> invokeAsync() throws Throwable
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 11.0, please use CacheRpcCommand.invokeAsync(ComponentRegistry) or GlobalRpcCommand.invokeAsync(GlobalComponentRegistry) instead.
      Invoke the command asynchronously.
      Throws:
      Throwable
      Since:
      9.0
    • invoke

      @Deprecated(forRemoval=true, since="11.0") default Object invoke() throws Throwable
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 11.0, please use CacheRpcCommand.invokeAsync(ComponentRegistry) or GlobalRpcCommand.invokeAsync(GlobalComponentRegistry) instead.
      Invoke the command synchronously.
      Throws:
      Throwable
      Since:
      9.0
    • getCommandId

      byte getCommandId()
      Used by marshallers to convert this command into an id for streaming.
      Returns:
      the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.
    • isReturnValueExpected

      boolean isReturnValueExpected()
      If true, a return value will be provided when performed remotely. Otherwise, a remote ResponseGenerator may choose to simply return null to save on marshalling costs.
      Returns:
      true or false
    • isSuccessful

      default boolean isSuccessful()
      If true, a return value will be marshalled as a SuccessfulResponse, otherwise it will be marshalled as a UnsuccessfulResponse.
    • canBlock

      @Deprecated(forRemoval=true) default boolean canBlock()
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 11.0 - All commands will be required to be non blocking!
      If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool. Otherwise, the command is processed directly in the JGroups thread.

      This feature allows to avoid keep a JGroups thread busy that can originate discard of messages and retransmissions. So, the commands that can block (waiting for some state, acquiring locks, etc.) should return true.

      Returns:
      true if the command can block/wait, false otherwise
    • logThrowable

      default boolean logThrowable(Throwable t)
    • writeTo

      default void writeTo(ObjectOutput output) throws IOException
      Writes this instance to the ObjectOutput.
      Parameters:
      output - the stream.
      Throws:
      IOException - if an error occurred during the I/O.
    • readFrom

      default void readFrom(ObjectInput input) throws IOException, ClassNotFoundException
      Reads this instance from the stream written by writeTo(ObjectOutput).
      Parameters:
      input - the stream to read.
      Throws:
      IOException - if an error occurred during the I/O.
      ClassNotFoundException - if it tries to load an undefined class.
    • setOrigin

      default void setOrigin(Address origin)
      Sets the sender's Address.

      By default, it doesn't set anything. Implement this method if the sender's Address is needed.

      Parameters:
      origin - the sender's Address