org.infinispan.commands.control
Class CacheViewControlCommand

java.lang.Object
  extended by org.infinispan.commands.control.CacheViewControlCommand
All Implemented Interfaces:
CacheRpcCommand, ReplicableCommand

public class CacheViewControlCommand
extends Object
implements CacheRpcCommand

A control command to coordinate the installation of cache views between the members of the cluster. The coordinator will receive REQUEST_JOIN and REQUEST_LEAVE commands from the nodes starting or stopping a cache. It then sends PREPARE_VIEW to all the nodes in the cluster. If all nodes return a successful response, the coordinator then sends a COMMIT_VIEW command to everyone. If there is a failure on one of the nodes, the coordinator cancels the view with a ROLLBACK_VIEW command.

Since:
5.1
Author:
Dan Berindei

Nested Class Summary
static class CacheViewControlCommand.Type
           
 
Field Summary
static int COMMAND_ID
           
 
Constructor Summary
CacheViewControlCommand()
           
CacheViewControlCommand(String cacheName)
           
CacheViewControlCommand(String cacheName, CacheViewControlCommand.Type type, Address sender)
           
CacheViewControlCommand(String cacheName, CacheViewControlCommand.Type type, Address sender, int viewId)
           
CacheViewControlCommand(String cacheName, CacheViewControlCommand.Type type, Address sender, int newViewId, List<Address> newMembers, int oldViewId, List<Address> oldMembers)
           
 
Method Summary
 String getCacheName()
           
 byte getCommandId()
          Used by marshallers to convert this command into an id for streaming.
 Address getOrigin()
          Get the origin of the command
 Object[] getParameters()
          Used by marshallers to stream this command across a network
 CacheViewControlCommand.Type getType()
           
 void init(CacheViewsManager cacheViewsManager)
           
 boolean isReturnValueExpected()
          If true, a return value will be provided when performed remotely.
 Object perform(InvocationContext ctx)
          Performs the primary function of the command.
 void setOrigin(Address origin)
          Set the origin of the command
 void setParameters(int commandId, Object[] parameters)
          Used by the CommandsFactory to create a command from raw data read off a stream.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

COMMAND_ID

public static final int COMMAND_ID
See Also:
Constant Field Values
Constructor Detail

CacheViewControlCommand

public CacheViewControlCommand()

CacheViewControlCommand

public CacheViewControlCommand(String cacheName)

CacheViewControlCommand

public CacheViewControlCommand(String cacheName,
                               CacheViewControlCommand.Type type,
                               Address sender,
                               int newViewId,
                               List<Address> newMembers,
                               int oldViewId,
                               List<Address> oldMembers)

CacheViewControlCommand

public CacheViewControlCommand(String cacheName,
                               CacheViewControlCommand.Type type,
                               Address sender,
                               int viewId)

CacheViewControlCommand

public CacheViewControlCommand(String cacheName,
                               CacheViewControlCommand.Type type,
                               Address sender)
Method Detail

init

public void init(CacheViewsManager cacheViewsManager)

perform

public Object perform(InvocationContext ctx)
               throws Throwable
Description copied from interface: ReplicableCommand
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.

Specified by:
perform in interface ReplicableCommand
Parameters:
ctx - invocation context
Returns:
arbitrary return value generated by performing this command
Throws:
Throwable - in the event of problems.

getCacheName

public String getCacheName()
Specified by:
getCacheName in interface CacheRpcCommand
Returns:
the name of the cache that produced this command. This will also be the name of the cache this command is intended for.

setOrigin

public void setOrigin(Address origin)
Description copied from interface: CacheRpcCommand
Set the origin of the command

Specified by:
setOrigin in interface CacheRpcCommand

getOrigin

public Address getOrigin()
Description copied from interface: CacheRpcCommand
Get the origin of the command

Specified by:
getOrigin in interface CacheRpcCommand
Returns:

getType

public CacheViewControlCommand.Type getType()

getCommandId

public byte getCommandId()
Description copied from interface: ReplicableCommand
Used by marshallers to convert this command into an id for streaming.

Specified by:
getCommandId in interface ReplicableCommand
Returns:
the method id of this command. This is compatible with pre-2.2.0 MethodCall ids.

getParameters

public Object[] getParameters()
Description copied from interface: ReplicableCommand
Used by marshallers to stream this command across a network

Specified by:
getParameters in interface ReplicableCommand
Returns:
an object array of arguments, compatible with pre-2.2.0 MethodCall args.

setParameters

public void setParameters(int commandId,
                          Object[] parameters)
Description copied from interface: ReplicableCommand
Used by the CommandsFactory to create a command from raw data read off a stream.

Specified by:
setParameters in interface ReplicableCommand
Parameters:
commandId - command id to set. This is usually unused but *could* be used in the event of a command having multiple IDs, such as PutKeyValueCommand.
parameters - object array of args

toString

public String toString()
Overrides:
toString in class Object

isReturnValueExpected

public boolean isReturnValueExpected()
Description copied from interface: 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 ReplicableCommand
Returns:
true or false

-->

Copyright © 2012 JBoss, a division of Red Hat. All Rights Reserved.