Package org.infinispan.commands
Interface ReplicableCommand
-
- All Known Subinterfaces:
org.infinispan.commands.remote.CacheRpcCommand
,CancellableCommand
,CustomQueryCommand
,DataCommand
,FlagAffectedCommand
,RemoteLockCommand
,TopologyAffectedCommand
,TransactionalRemoteLockCommand
,VisitableCommand
- All Known Implementing Classes:
AbstractFlagAffectedCommand
,AbstractTopologyAffectedCommand
,AbstractUpdateCommand
,AffinityUpdateCommand
,org.infinispan.commands.remote.BaseRpcCommand
,CacheTopologyControlCommand
,CancelCommand
,ClusteredQueryCommand
,CreateCacheCommand
,ForwardCommitCommand
,ForwardRollbackCommand
,HeartBeatCommand
,IndexUpdateCommand
,IndexUpdateStreamCommand
,RemoveCacheCommand
,ReplicableCommandManagerFunction
,ReplicableCommandRunnable
,SingleXSiteRpcCommand
,StateRequestCommand
,StateResponseCommand
,StreamIteratorCloseCommand
,StreamIteratorNextCommand
,StreamIteratorRequestCommand
,StreamRequestCommand
,StreamResponseCommand
,TouchCommand
,XSiteAdminCommand
,XSiteReplicateCommand
,XSiteStatePushCommand
,XSiteStateTransferControlCommand
public interface ReplicableCommand
The core of the command-based cache framework. Commands correspond to specific areas of functionality in the cache, and can be replicated using theRpcManager
- Since:
- 4.0
- Author:
- Mircea.Markus@jboss.com, Manik Surtani
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description boolean
canBlock()
If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool.byte
getCommandId()
Used by marshallers to convert this command into an id for streaming.default Object
invoke()
Invoke the command synchronously.default CompletableFuture<Object>
invokeAsync()
Invoke the command asynchronously.boolean
isReturnValueExpected()
If true, a return value will be provided when performed remotely.default boolean
isSuccessful()
If true, a return value will be marshalled as aSuccessfulResponse
, otherwise it will be marshalled as aUnsuccessfulResponse
.default Object
perform(InvocationContext ctx)
Deprecated.Since 9.0, split intoinvokeAsync()
andVisitableCommand.perform(InvocationContext)
.void
readFrom(ObjectInput input)
Reads this instance from the stream written bywriteTo(ObjectOutput)
.default void
setOrigin(Address origin)
Sets the sender'sAddress
.void
writeTo(ObjectOutput output)
Writes this instance to theObjectOutput
.
-
-
-
Method Detail
-
invokeAsync
default CompletableFuture<Object> invokeAsync() throws Throwable
Invoke the command asynchronously.This method replaces
perform(InvocationContext)
for remote execution. The default implementation andperform(InvocationContext)
will be removed in future versions.- Throws:
Throwable
- Since:
- 9.0
-
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.Since 9.0, split intoinvokeAsync()
andVisitableCommand.perform(InvocationContext)
.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 remoteResponseGenerator
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 aSuccessfulResponse
, otherwise it will be marshalled as aUnsuccessfulResponse
.
-
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
-
writeTo
void writeTo(ObjectOutput output) throws IOException
Writes this instance to theObjectOutput
.- Parameters:
output
- the stream.- Throws:
IOException
- if an error occurred during the I/O.
-
readFrom
void readFrom(ObjectInput input) throws IOException, ClassNotFoundException
Reads this instance from the stream written bywriteTo(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.
-
-