Interface ReplicableCommand

    • Method Detail

      • invoke

        default Object invoke()
                       throws Throwable
        Invoke the command synchronously.

        This method is optional. Unless your command never blocks, please implement invokeAsync() instead.

        Throws:
        Throwable
        Since:
        9.0
      • perform

        @Deprecated
        default Object perform​(InvocationContext ctx)
                        throws Throwable
        Deprecated.
        Performs the primary function of the command. Please see specific implementation classes for details on what is performed as well as return types. Important: this method will be invoked at the end of interceptors chain. It should never be called directly from a custom interceptor.
        Parameters:
        ctx - invocation context
        Returns:
        arbitrary return value generated by performing this command
        Throws:
        Throwable - in the event of problems.
      • 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
      • canBlock

        boolean canBlock()
        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
      • 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