Package org.apache.catalina.tribes.group.interceptors

## Class ThroughputInterceptor

- java.lang.Object
- - org.apache.catalina.tribes.group.ChannelInterceptorBase
  - - org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor

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

    public class ThroughputInterceptor
    extends ChannelInterceptorBase
    implements ThroughputInterceptorMBean

### Nested Class Summary

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

`ChannelInterceptor.InterceptorEvent`

### Field Summary

Fields
`protected static StringManager` `sm`

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

`optionFlag`

### Constructor Summary

Constructors
`ThroughputInterceptor()`

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `getInterval()`
`double` `getLastCnt()`
`double` `getMbAppTx()`
`double` `getMbRx()`
`double` `getMbTx()`
`java.util.concurrent.atomic.AtomicLong` `getMsgRxCnt()`
`java.util.concurrent.atomic.AtomicLong` `getMsgTxCnt()`
`java.util.concurrent.atomic.AtomicLong` `getMsgTxErr()`
`long` `getRxStart()`
`double` `getTimeTx()`
`long` `getTxStart()`
`void` `messageReceived​(ChannelMessage msg)` the `messageReceived` is invoked when a message is received.
`void` `report​(double timeTx)`
`void` `sendMessage​(Member[] destination, ChannelMessage msg, InterceptorPayload payload)` The `sendMessage` method is called when a message is being sent to one more destinations.
`void` `setInterval​(int interval)`

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

`fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPrevious, start, stop`

### 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.ThroughputInterceptorMBean

`getOptionFlag`

### Field Detail

#### sm

    protected static final StringManager sm

### Constructor Detail

#### ThroughputInterceptor

    public ThroughputInterceptor()

### Method Detail

#### sendMessage

    public void sendMessage​(Member[] destination,
                            ChannelMessage msg,
                            InterceptorPayload payload)
                     throws ChannelException

Description copied from interface: `ChannelInterceptor`
The `sendMessage` method is called when a message is being sent to one more destinations. The interceptor can modify any of the parameters and then pass on the message down the stack by invoking `getNext().sendMessage(destination,msg,payload)`
Alternatively the interceptor can stop the message from being sent by not invoking `getNext().sendMessage(destination,msg,payload)`
If the message is to be sent asynchronous the application can be notified of completion and errors by passing in an error handler attached to a payload object.
The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten to simulate a message sent from another node.

Specified by:
  `sendMessage` in interface `ChannelInterceptor`
Overrides:
  `sendMessage` in class `ChannelInterceptorBase`
Parameters:
  `destination` - Member[] - the destination for this message
  `msg` - ChannelMessage - the message to be sent
  `payload` - InterceptorPayload - the payload, carrying an error handler and future useful data, can be null
Throws:
  `ChannelException` - if a serialization error happens.
See Also:
  `ErrorHandler`, `InterceptorPayload`

#### 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

#### report

    public void report​(double timeTx)

Specified by:
  `report` in interface `ThroughputInterceptorMBean`

#### setInterval

    public void setInterval​(int interval)

Specified by:
  `setInterval` in interface `ThroughputInterceptorMBean`

#### getInterval

    public int getInterval()

Specified by:
  `getInterval` in interface `ThroughputInterceptorMBean`

#### getLastCnt

    public double getLastCnt()

Specified by:
  `getLastCnt` in interface `ThroughputInterceptorMBean`

#### getMbAppTx

    public double getMbAppTx()

Specified by:
  `getMbAppTx` in interface `ThroughputInterceptorMBean`

#### getMbRx

    public double getMbRx()

Specified by:
  `getMbRx` in interface `ThroughputInterceptorMBean`

#### getMbTx

    public double getMbTx()

Specified by:
  `getMbTx` in interface `ThroughputInterceptorMBean`

#### getMsgRxCnt

    public java.util.concurrent.atomic.AtomicLong getMsgRxCnt()

Specified by:
  `getMsgRxCnt` in interface `ThroughputInterceptorMBean`

#### getMsgTxCnt

    public java.util.concurrent.atomic.AtomicLong getMsgTxCnt()

Specified by:
  `getMsgTxCnt` in interface `ThroughputInterceptorMBean`

#### getMsgTxErr

    public java.util.concurrent.atomic.AtomicLong getMsgTxErr()

Specified by:
  `getMsgTxErr` in interface `ThroughputInterceptorMBean`

#### getRxStart

    public long getRxStart()

Specified by:
  `getRxStart` in interface `ThroughputInterceptorMBean`

#### getTimeTx

    public double getTimeTx()

Specified by:
  `getTimeTx` in interface `ThroughputInterceptorMBean`

#### getTxStart

    public long getTxStart()

Specified by:
  `getTxStart` in interface `ThroughputInterceptorMBean`