Class ClusteredQueryCommand

  • All Implemented Interfaces:
    org.infinispan.commands.remote.CacheRpcCommand, org.infinispan.commands.ReplicableCommand, org.infinispan.query.impl.CustomQueryCommand

    public final class ClusteredQueryCommand
    extends org.infinispan.commands.remote.BaseRpcCommand
    implements org.infinispan.query.impl.CustomQueryCommand
    Encapsulates all rpc calls for distributed queries actions.

    This class is public so it can be used by other internal Infinispan packages but should not be considered part of a public API.

    Since:
    5.1
    Author:
    Israel Lacerra <israeldl@gmail.com>
    • Constructor Detail

      • ClusteredQueryCommand

        public ClusteredQueryCommand​(ByteString cacheName)
        For CommandFactory only. To create a ClusteredQueryCommand, use createLazyIterator(), destroyLazyQuery(), getResultSize() or retrieveKeyFromLazyQuery()
    • Method Detail

      • setCacheManager

        public void setCacheManager​(EmbeddedCacheManager cm)
        Specified by:
        setCacheManager in interface org.infinispan.query.impl.CustomQueryCommand
      • invokeAsync

        public CompletableFuture<Object> invokeAsync()
        Invokes a query on a (remote) cache and returns results (list of keys).
        Specified by:
        invokeAsync in interface org.infinispan.commands.ReplicableCommand
        Returns:
        returns a CompletableFuture with a List<Object>.
      • 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • 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