Package org.infinispan.topology
Class CacheTopologyControlCommand
- java.lang.Object
-
- org.infinispan.topology.CacheTopologyControlCommand
-
- All Implemented Interfaces:
org.infinispan.commands.ReplicableCommand
public class CacheTopologyControlCommand extends Object implements org.infinispan.commands.ReplicableCommand
A control command for all cache membership/rebalance operations. It is not aCacheRpcCommandbecause it needs to run on the coordinator even when the coordinator doesn't have a certain cache running.- Since:
- 5.2
- Author:
- Dan Berindei
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCacheTopologyControlCommand.Type
-
Field Summary
Fields Modifier and Type Field Description static byteCOMMAND_ID
-
Constructor Summary
Constructors Constructor Description CacheTopologyControlCommand()CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, int viewId)CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, int topologyId, int rebalanceId, Throwable throwable, int viewId)CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, AvailabilityMode availabilityMode, int viewId)CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, CacheJoinInfo joinInfo, int viewId)CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, CacheTopology cacheTopology, AvailabilityMode availabilityMode, int viewId)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanBlock()If true, the command is processed asynchronously in a thread provided by an Infinispan thread pool.AvailabilityModegetAvailabilityMode()StringgetCacheName()bytegetCommandId()Used by marshallers to convert this command into an id for streaming.ConsistentHashgetCurrentCH()AddressgetOrigin()ConsistentHashgetPendingCH()CacheTopology.PhasegetPhase()ThrowablegetThrowable()intgetTopologyId()CacheTopologyControlCommand.TypegetType()CompletableFuture<Object>invokeAsync()Invoke the command asynchronously.booleanisReturnValueExpected()If true, a return value will be provided when performed remotely.voidreadFrom(ObjectInput input)Reads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput).StringtoString()voidwriteTo(ObjectOutput output)Writes this instance to theObjectOutput.
-
-
-
Field Detail
-
COMMAND_ID
public static final byte COMMAND_ID
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CacheTopologyControlCommand
public CacheTopologyControlCommand()
-
CacheTopologyControlCommand
public CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, int viewId)
-
CacheTopologyControlCommand
public CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, CacheJoinInfo joinInfo, int viewId)
-
CacheTopologyControlCommand
public CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, int topologyId, int rebalanceId, Throwable throwable, int viewId)
-
CacheTopologyControlCommand
public CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, AvailabilityMode availabilityMode, int viewId)
-
CacheTopologyControlCommand
public CacheTopologyControlCommand(String cacheName, CacheTopologyControlCommand.Type type, Address sender, CacheTopology cacheTopology, AvailabilityMode availabilityMode, int viewId)
-
-
Method Detail
-
invokeAsync
public CompletableFuture<Object> invokeAsync() throws Throwable
Description copied from interface:org.infinispan.commands.ReplicableCommandInvoke the command asynchronously.This method replaces
ReplicableCommand.perform(InvocationContext)for remote execution. The default implementation andReplicableCommand.perform(InvocationContext)will be removed in future versions.- Specified by:
invokeAsyncin interfaceorg.infinispan.commands.ReplicableCommand- Throws:
Throwable
-
getCacheName
public String getCacheName()
-
getOrigin
public Address getOrigin()
-
getType
public CacheTopologyControlCommand.Type getType()
-
getTopologyId
public int getTopologyId()
-
getCurrentCH
public ConsistentHash getCurrentCH()
-
getPendingCH
public ConsistentHash getPendingCH()
-
getAvailabilityMode
public AvailabilityMode getAvailabilityMode()
-
getThrowable
public Throwable getThrowable()
-
getPhase
public CacheTopology.Phase getPhase()
-
getCommandId
public byte getCommandId()
Description copied from interface:org.infinispan.commands.ReplicableCommandUsed by marshallers to convert this command into an id for streaming.- Specified by:
getCommandIdin interfaceorg.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.ReplicableCommandWrites this instance to theObjectOutput.- Specified by:
writeToin interfaceorg.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.ReplicableCommandReads this instance from the stream written byReplicableCommand.writeTo(ObjectOutput).- Specified by:
readFromin interfaceorg.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.
-
isReturnValueExpected
public boolean isReturnValueExpected()
Description copied from interface:org.infinispan.commands.ReplicableCommandIf true, a return value will be provided when performed remotely. Otherwise, a remoteResponseGeneratormay choose to simply return null to save on marshalling costs.- Specified by:
isReturnValueExpectedin interfaceorg.infinispan.commands.ReplicableCommand- Returns:
- true or false
-
canBlock
public boolean canBlock()
Description copied from interface:org.infinispan.commands.ReplicableCommandIf 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:
canBlockin interfaceorg.infinispan.commands.ReplicableCommand- Returns:
trueif the command can block/wait,falseotherwise
-
-