# Interface CatalinaCluster

All Superinterfaces:
  `Cluster, Contained`

All Known Implementing Classes:
  `SimpleTcpCluster`

public interface CatalinaCluster extends Cluster
A CatalinaCluster interface allows to plug in and out the different cluster implementations

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addClusterListener(ClusterListener listener)`
  Add cluster message listener and register cluster to this listener.
  `void`
  `addValve(Valve valve)`
  Add cluster valve.
  `Channel`
  `getChannel()`
  `ClusterDeployer`
  `getClusterDeployer()`
  `Member`
  `getLocalMember()`
  `Manager`
  `getManager(String name)`
  Get Manager
  `String`
  `getManagerName(String name, Manager manager)`
  Get a new cluster name for a manager.
  `Map<String, ClusterManager>`
  `getManagers()`
  `Member[]`
  `getMembers()`
  `Valve[]`
  `getValves()`
  `boolean`
  `hasMembers()`
  `void`
  `removeClusterListener(ClusterListener listener)`
  Remove message listener and deregister Cluster from listener.
  `void`
  `send(ClusterMessage msg)`
  Sends a message to all the members in the cluster
  `void`
  `send(ClusterMessage msg, Member dest)`
  Sends a message to a specific member in the cluster.
  `void`
  `send(ClusterMessage msg, Member dest, int sendOptions)`
  Sends a message with the specified sendOptions to a specific member in the cluster.
  `void`
  `setChannel(Channel channel)`
  Set the channel associated with the cluster.
  `void`
  `setClusterDeployer(ClusterDeployer deployer)`
  Set a new Deployer, must be set before the cluster started.

  ### Methods inherited from interface Cluster

  `backgroundProcess, createManager, getClusterName, registerManager, removeManager, setClusterName`

  ### Methods inherited from interface Contained

  `getContainer, setContainer`

- ## Method Details

  - ### send

    void send(ClusterMessage msg)
    Sends a message to all the members in the cluster
    Parameters:
      `msg` - ClusterMessage

  - ### send

    void send(ClusterMessage msg, Member dest)
    Sends a message to a specific member in the cluster.
    Parameters:
      `msg` - ClusterMessage
      `dest` - Member

  - ### send

    void send(ClusterMessage msg, Member dest, int sendOptions)
    Sends a message with the specified sendOptions to a specific member in the cluster.
    Parameters:
      `msg` - ClusterMessage
      `dest` - Member
      `sendOptions` - sendOptions

  - ### hasMembers

    boolean hasMembers()
    Returns:
      `true` if the cluster has members.

  - ### getMembers

    Member[] getMembers()
    Returns:
      an array containing all the members currently participating in the cluster.

  - ### getLocalMember

    Member getLocalMember()
    Returns:
      the member that represents this node.

  - ### addValve

    void addValve(Valve valve)
    Add cluster valve. Cluster Valves are only add to container when cluster is started.
    Parameters:
      `valve` - The new cluster Valve.

  - ### addClusterListener

    void addClusterListener(ClusterListener listener)
    Add cluster message listener and register cluster to this listener.
    Parameters:
      `listener` - The new listener

  - ### removeClusterListener

    void removeClusterListener(ClusterListener listener)
    Remove message listener and deregister Cluster from listener.
    Parameters:
      `listener` - The listener to remove

  - ### setClusterDeployer

    void setClusterDeployer(ClusterDeployer deployer)
    Set a new Deployer, must be set before the cluster started.
    Parameters:
      `deployer` - The associated deployer

  - ### getClusterDeployer

    ClusterDeployer getClusterDeployer()
    Returns:
      the current Deployer

  - ### getManagers

    Map<String, ClusterManager> getManagers()
    Returns:
      The map of managers

  - ### getManager

    Manager getManager(String name)
    Get Manager
    Parameters:
      `name` - The manager name
    Returns:
      The manager

  - ### getManagerName

    String getManagerName(String name, Manager manager)
    Get a new cluster name for a manager.
    Parameters:
      `name` - Override name (optional)
      `manager` - The manager
    Returns:
      the manager name in the cluster

  - ### getValves

    Valve[] getValves()
    Returns:
      the current cluster valves

  - ### setChannel

    void setChannel(Channel channel)
    Set the channel associated with the cluster.
    Parameters:
      `channel` - the channel

  - ### getChannel

    Channel getChannel()
    Returns:
      the channel associated with the cluster