Class StateResponseCommand

  • All Implemented Interfaces:
    org.infinispan.commands.remote.CacheRpcCommand, org.infinispan.commands.ReplicableCommand, org.infinispan.commands.TopologyAffectedCommand

    public class StateResponseCommand
    extends org.infinispan.commands.remote.BaseRpcCommand
    implements org.infinispan.commands.TopologyAffectedCommand
    This command is used by a StateProvider to push cache entries to a StateConsumer.
    Since:
    5.2
    Author:
    anistor@redhat.com
    • Constructor Detail

      • StateResponseCommand

        public StateResponseCommand​(ByteString cacheName)
      • StateResponseCommand

        public StateResponseCommand​(ByteString cacheName,
                                    Address origin,
                                    int topologyId,
                                    Collection<StateChunk> stateChunks,
                                    boolean applyState,
                                    boolean pushTransfer)
    • Method Detail

      • init

        public void init​(StateConsumer stateConsumer,
                         org.infinispan.conflict.impl.StateReceiver stateReceiver)
      • invokeAsync

        public CompletableFuture<Object> invokeAsync()
                                              throws Throwable
        Description copied from interface: org.infinispan.commands.ReplicableCommand
        Invoke the command asynchronously.

        This method replaces ReplicableCommand.perform(InvocationContext) for remote execution. The default implementation and ReplicableCommand.perform(InvocationContext) will be removed in future versions.

        Specified by:
        invokeAsync in interface org.infinispan.commands.ReplicableCommand
        Throws:
        Throwable
      • isReturnValueExpected

        public boolean isReturnValueExpected()
        Description copied from interface: org.infinispan.commands.ReplicableCommand
        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.
        Specified by:
        isReturnValueExpected in interface org.infinispan.commands.ReplicableCommand
        Returns:
        true or false
      • canBlock

        public boolean canBlock()
        Description copied from interface: org.infinispan.commands.ReplicableCommand
        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.

        Specified by:
        canBlock in interface org.infinispan.commands.ReplicableCommand
        Overrides:
        canBlock in class org.infinispan.commands.remote.BaseRpcCommand
        Returns:
        true if the command can block/wait, false otherwise
      • getTopologyId

        public int getTopologyId()
        Specified by:
        getTopologyId in interface org.infinispan.commands.TopologyAffectedCommand
      • setTopologyId

        public void setTopologyId​(int topologyId)
        Specified by:
        setTopologyId in interface org.infinispan.commands.TopologyAffectedCommand
      • getCommandId

        public byte getCommandId()
        Description copied from interface: org.infinispan.commands.ReplicableCommand
        Used by marshallers to convert this command into an id for streaming.
        Specified by:
        getCommandId in interface org.infinispan.commands.ReplicableCommand
        Returns:
        the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.
      • writeTo

        public void writeTo​(ObjectOutput output)
                     throws IOException
        Description copied from interface: org.infinispan.commands.ReplicableCommand
        Writes this instance to the ObjectOutput.
        Specified by:
        writeTo in interface org.infinispan.commands.ReplicableCommand
        Parameters:
        output - the stream.
        Throws:
        IOException - if an error occurred during the I/O.
      • readFrom

        public void readFrom​(ObjectInput input)
                      throws IOException,
                             ClassNotFoundException
        Description copied from interface: org.infinispan.commands.ReplicableCommand
        Reads this instance from the stream written by ReplicableCommand.writeTo(ObjectOutput).
        Specified by:
        readFrom in interface org.infinispan.commands.ReplicableCommand
        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.
      • toString

        public String toString()
        Overrides:
        toString in class org.infinispan.commands.remote.BaseRpcCommand