org.jgroups.stack

Class RouterStub


public class RouterStub
extends java.lang.Object

Field Summary

protected static Log
log

Constructor Summary

RouterStub(String router_host, int router_port)
Creates a stub for a remote Router object.

Method Summary

Address
connect()
Establishes a connection to the router.
void
disconnect()
Closes the socket and the input and output streams associated with it
List
get(String groupname)
Retrieves the membership (list of Addresses) for a given group.
static void
main(String[] args)
Message
receive()
Receives a message from the router (blocking mode).
boolean
reconnect()
Tries to establish connection to router.
boolean
register(String groupname)
Register this process with the router under groupname.
boolean
send(Message msg, String groupname)
Sends a message to the router.

Field Details

log

protected static Log log

Constructor Details

RouterStub

public RouterStub(String router_host,
                  int router_port)
Creates a stub for a remote Router object.

Parameters:
router_host - The name of the router's host
router_port - The router's port

Method Details

connect

public Address connect()
            throws Exception
Establishes a connection to the router. The router will send my address (its peer address) back as an Address, which is subsequently returned to the caller. The reason for not using InetAddress.getLocalHost() or sock.getLocalAddress() is that this may not be permitted with certain security managers (e.g if this code runs in an applet). Also, some network address translation (NAT) (e.g IP Masquerading) may return the wrong address.


disconnect

public void disconnect()
Closes the socket and the input and output streams associated with it


get

public List get(String groupname)
Retrieves the membership (list of Addresses) for a given group. This is mainly used by the PING protocol to obtain its initial membership. This is used infrequently, so don't maintain socket for the entire time, but create/delete it on demand.


main

public static void main(String[] args)


receive

public Message receive()
Receives a message from the router (blocking mode). If the connection is down, false is returned, otherwise true


reconnect

public boolean reconnect()
Tries to establish connection to router. Tries until router is up again.


register

public boolean register(String groupname)
Register this process with the router under groupname.

Parameters:
groupname - The name of the group under which to register

Returns:
boolean False if connection down, true if registration successful.


send

public boolean send(Message msg,
                    String groupname)
Sends a message to the router. Returns false if message cannot be sent (e.g. no connection to router, true otherwise.


Copyright B) 2001,2002 www.jgroups.com . All Rights Reserved.