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>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static byte COMMAND_ID  
      • Fields inherited from class org.infinispan.commands.remote.BaseRpcCommand

        cacheName
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canBlock()
      If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool.
      boolean equals​(java.lang.Object obj)  
      byte getCommandId()
      Used by marshallers to convert this command into an id for streaming.
      int hashCode()  
      java.util.concurrent.CompletableFuture<java.lang.Object> invokeAsync()
      Invokes a query on a (remote) cache and returns results (list of keys).
      boolean isReturnValueExpected()
      If true, a return value will be provided when performed remotely.
      QueryResponse perform​(AdvancedCache<?,​?> cache)  
      void readFrom​(java.io.ObjectInput input)
      Reads this instance from the stream written by ReplicableCommand.writeTo(ObjectOutput).
      void setCacheManager​(EmbeddedCacheManager cm)  
      java.lang.String toString()  
      void writeTo​(java.io.ObjectOutput output)
      Writes this instance to the ObjectOutput.
      • Methods inherited from class org.infinispan.commands.remote.BaseRpcCommand

        getCacheName, getOrigin, setOrigin
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.infinispan.commands.remote.CacheRpcCommand

        getCacheName, getOrigin, setOrigin
      • Methods inherited from interface org.infinispan.commands.ReplicableCommand

        invoke, isSuccessful, perform
    • 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 java.util.concurrent.CompletableFuture<java.lang.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​(java.io.ObjectOutput output)
                     throws java.io.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:
        java.io.IOException - if an error occurred during the I/O.
      • readFrom

        public void readFrom​(java.io.ObjectInput input)
                      throws java.io.IOException,
                             java.lang.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:
        java.io.IOException - if an error occurred during the I/O.
        java.lang.ClassNotFoundException - if it tries to load an undefined class.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class org.infinispan.commands.remote.BaseRpcCommand
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.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