org.jgroups.demos

## Class RelayDemoRpc

- java.lang.Object
- - org.jgroups.ReceiverAdapter
  - - org.jgroups.demos.RelayDemoRpc

All Implemented Interfaces:
  MembershipListener, MessageListener, Receiver

    public class RelayDemoRpc
    extends ReceiverAdapter

Demos RELAY. Create 2 *separate* clusters with RELAY as top protocol. Each RELAY has bridge_props="tcp.xml" (tcp.xml needs to be present). Then start 2 instances in the first cluster and 2 instances in the second cluster. They should find each other, and typing in a window should send the text to everyone, plus we should get 4 responses.

Author:
  Bela Ban

### Field Summary

Fields
`protected JChannel` `ch`
`protected RpcDispatcher` `disp`
`protected Address` `local_addr`
`protected View` `view`

### Constructor Summary

Constructors
Constructor and Description
`RelayDemoRpc()`

### Method Summary

Methods
`static java.lang.String` `handleMessage(java.lang.String msg, Address sender)`
`static void` `main(java.lang.String[] args)`
`void` `start(java.lang.String props, java.lang.String name)`
`void` `viewAccepted(View new_view)` Called when a change in membership has occurred.

### Methods inherited from class org.jgroups.ReceiverAdapter

`block, getState, receive, setState, suspect`

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

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

### Field Detail

#### ch

    protected JChannel ch

#### disp

    protected RpcDispatcher disp

#### local_addr

    protected Address local_addr

#### view

    protected View view

### Constructor Detail

#### RelayDemoRpc

    public RelayDemoRpc()

### Method Detail

#### main

    public static void main(java.lang.String[] args)
                     throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### start

    public void start(java.lang.String props,
             java.lang.String name)
               throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### handleMessage

    public static java.lang.String handleMessage(java.lang.String msg,
                                 Address sender)

#### viewAccepted

    public void viewAccepted(View new_view)

Description copied from interface: `MembershipListener`
Called when a change in membership has occurred. No long running actions or sending of messages should be done in this callback. If some long running action needs to be performed, it should be done in a separate thread.

Note that on reception of the first view (a new member just joined), the channel will not yet be in the connected state. This only happens when `Channel.connect(String)` returns.

Specified by:
  `viewAccepted` in interface `MembershipListener`
Overrides:
  `viewAccepted` in class `ReceiverAdapter`