# Class StaticMembershipInterceptor

java.lang.Object
org.apache.catalina.tribes.group.ChannelInterceptorBase
org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor

All Implemented Interfaces:
  `ChannelInterceptor`, `StaticMembershipInterceptorMBean`, `Heartbeat`, `MembershipListener`

public class StaticMembershipInterceptor extends ChannelInterceptorBase implements StaticMembershipInterceptorMBean

## Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptor

`ChannelInterceptor.InterceptorEvent`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Member`
`localMember`
`protected static final byte[]`
`MEMBER_START`
`protected static final byte[]`
`MEMBER_STOP`
`protected final ArrayList<Member>`
`members`
`protected static final StringManager`
`sm`

### Fields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase

`optionFlag`

## Constructor Summary

Constructors
Constructor
Description
`StaticMembershipInterceptor()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addStaticMember(Member member)`
`protected ChannelInterceptor`
`getfirstInterceptor()`
`Member`
`getLocalMember(boolean incAlive)`
Intercepts the `Channel.getLocalMember(boolean)` method
`Member`
`getMember(Member mbr)`
Intercepts the `Channel.getMember(Member)` method
`Member[]`
`getMembers()`
Intercepts the `Channel.getMembers()` method
`boolean`
`hasMembers()`
Intercepts the `Channel.hasMembers()` method
`void`
`messageReceived(ChannelMessage msg)`
The `messageReceived` is invoked when a message is received.
`void`
`removeStaticMember(Member member)`
`protected void`
`sendLocalMember(Member[] members)`
`protected void`
`sendMemberMessage(Member[] members, byte[] message)`
`protected void`
`sendShutdown(Member[] members)`
`void`
`setLocalMember(Member member)`
`void`
`start(int svc)`
Starts up the channel.
`void`
`stop(int svc)`
Shuts down the channel.

### Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBase

`fireInterceptorEvent, getChannel, getNext, getOptionFlag, getPrevious, heartbeat, memberAdded, memberDisappeared, okToProcess, sendMessage, setChannel, setNext, setOptionFlag, setPrevious`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptorMBean

`getOptionFlag`

## Field Details

### sm

protected static final StringManager sm

### MEMBER_START

protected static final byte[] MEMBER_START

### MEMBER_STOP

protected static final byte[] MEMBER_STOP

### members

protected final ArrayList<Member> members

### localMember

protected Member localMember

## Constructor Details

### StaticMembershipInterceptor

public StaticMembershipInterceptor()

## Method Details

### addStaticMember

public void addStaticMember(Member member)

### removeStaticMember

public void removeStaticMember(Member member)

### setLocalMember

public void setLocalMember(Member member)

### messageReceived

public void messageReceived(ChannelMessage msg)
Description copied from interface: `ChannelInterceptor`
The `messageReceived` is invoked when a message is received. `ChannelMessage.getAddress()` is the sender, or the reply-to address if it has been overwritten.

Specified by:
  `messageReceived` in interface `ChannelInterceptor`
Overrides:
  `messageReceived` in class `ChannelInterceptorBase`
Parameters:
  `msg` - ChannelMessage

### hasMembers

public boolean hasMembers()
Description copied from interface: `ChannelInterceptor`
Intercepts the `Channel.hasMembers()` method

Specified by:
  `hasMembers` in interface `ChannelInterceptor`
Overrides:
  `hasMembers` in class `ChannelInterceptorBase`
Returns:
  boolean - if the channel has members in its membership group
See Also:
  - `Channel.hasMembers()`

### getMembers

public Member[] getMembers()
Description copied from interface: `ChannelInterceptor`
Intercepts the `Channel.getMembers()` method

Specified by:
  `getMembers` in interface `ChannelInterceptor`
Overrides:
  `getMembers` in class `ChannelInterceptorBase`
Returns:
  the members
See Also:
  - `Channel.getMembers()`

### getMember

public Member getMember(Member mbr)
Description copied from interface: `ChannelInterceptor`
Intercepts the `Channel.getMember(Member)` method

Specified by:
  `getMember` in interface `ChannelInterceptor`
Overrides:
  `getMember` in class `ChannelInterceptorBase`
Parameters:
  `mbr` - Member
Returns:
  Member - the actual member information, including stay alive
See Also:
  - `Channel.getMember(Member)`

### getLocalMember

public Member getLocalMember(boolean incAlive)
Description copied from interface: `ChannelInterceptor`
Intercepts the `Channel.getLocalMember(boolean)` method

Specified by:
  `getLocalMember` in interface `ChannelInterceptor`
Specified by:
  `getLocalMember` in interface `StaticMembershipInterceptorMBean`
Overrides:
  `getLocalMember` in class `ChannelInterceptorBase`
Parameters:
  `incAlive` - boolean
Returns:
  the member that represents this node
See Also:
  - `Channel.getLocalMember(boolean)`

### start

public void start(int svc) throws ChannelException
Starts up the channel. This can be called multiple times for individual services to start The svc parameter can be the logical or value of any constants

Sends notifications upwards.

Specified by:
  `start` in interface `ChannelInterceptor`
Overrides:
  `start` in class `ChannelInterceptorBase`
Parameters:
  `svc` - one of:
  - Channel.DEFAULT - will start all services
  - Channel.MBR_RX_SEQ - starts the membership receiver
  - Channel.MBR_TX_SEQ - starts the membership broadcaster
  - Channel.SND_TX_SEQ - starts the replication transmitter
  - Channel.SND_RX_SEQ - starts the replication receiver
Throws:
  `ChannelException` - if a startup error occurs or the service is already started.
See Also:
  - `Channel`

### stop

public void stop(int svc) throws ChannelException
Shuts down the channel. This can be called multiple times for individual services to shut down. The svc parameter can be the logical or value of any constants

Sends local member shutdown.

Specified by:
  `stop` in interface `ChannelInterceptor`
Overrides:
  `stop` in class `ChannelInterceptorBase`
Parameters:
  `svc` - one of:
  - Channel.DEFAULT - will shut down all services
  - Channel.MBR_RX_SEQ - stops the membership receiver
  - Channel.MBR_TX_SEQ - stops the membership broadcaster
  - Channel.SND_TX_SEQ - stops the replication transmitter
  - Channel.SND_RX_SEQ - stops the replication receiver
Throws:
  `ChannelException` - if a startup error occurs or the service is already started.
See Also:
  - `Channel`

### sendLocalMember

protected void sendLocalMember(Member[] members)

### sendShutdown

protected void sendShutdown(Member[] members)

### getfirstInterceptor

protected ChannelInterceptor getfirstInterceptor()

### sendMemberMessage

protected void sendMemberMessage(Member[] members, byte[] message) throws ChannelException

Throws:
  `ChannelException`