uk.ac.ic.doc.automed.p2p
Class P2PRegistry

java.lang.Object
  extended by uk.ac.ic.doc.automed.p2p.communication.AbstractRequestListener
      extended by uk.ac.ic.doc.automed.p2p.P2PRegistry
All Implemented Interfaces:
RequestListener

public class P2PRegistry
extends AbstractRequestListener


Field Summary
private  java.util.Map peers
           
private static P2PRegistry registryInstance
           
private  AbstractServer server
           
private static int TIMEOUT
           
 
Constructor Summary
private P2PRegistry(java.lang.String name)
           
 
Method Summary
private  void addPeer(java.lang.String name, int port)
           
 void close()
           
private  java.util.Collection getNames()
           
private  int getPeerCount()
           
 int getPeerPort(java.lang.String name)
           
 boolean getReadyState()
          Is the socket server ready to accept requests?
static P2PRegistry getRegistryInstance()
           
static P2PRegistry getRegistryInstance(java.lang.String name)
          Start a registry from a Peer
 int getTimeOut()
           
 byte[] handleRequest(byte[] dataReceived, ResponseHandler output)
          Handle both TCP and UDP requests
static void main(java.lang.String[] args)
          Start registry from command-line
private  void outputPeerPort(AbstractMessage message, ResponseHandler output)
           
private  void registerPeer(AbstractMessage message, ResponseHandler output)
           
 void removePeer(java.lang.String name)
           
private  void unRegisterPeer(AbstractMessage message, ResponseHandler output)
          Unregister a peer from registry
 
Methods inherited from class uk.ac.ic.doc.automed.p2p.communication.AbstractRequestListener
getRequestMessage, getResponseData, getType, handleRequest, handleRequest, handleRequest, handleUDPRequest, handleUDPRequest, handleUDPRequest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TIMEOUT

private static final int TIMEOUT
See Also:
Constant Field Values

peers

private java.util.Map peers

server

private AbstractServer server

registryInstance

private static P2PRegistry registryInstance
Constructor Detail

P2PRegistry

private P2PRegistry(java.lang.String name)
             throws AutoMedException
Throws:
AutoMedException
Method Detail

getRegistryInstance

public static P2PRegistry getRegistryInstance()
                                       throws CommunicationException,
                                              AutoMedException
Throws:
CommunicationException
AutoMedException

getRegistryInstance

public static P2PRegistry getRegistryInstance(java.lang.String name)
                                       throws CommunicationException,
                                              AutoMedException
Start a registry from a Peer

Throws:
CommunicationException
AutoMedException

main

public static void main(java.lang.String[] args)
Start registry from command-line


close

public void close()

getReadyState

public boolean getReadyState()
Is the socket server ready to accept requests?


getNames

private java.util.Collection getNames()

addPeer

private void addPeer(java.lang.String name,
                     int port)

getPeerCount

private int getPeerCount()

getPeerPort

public int getPeerPort(java.lang.String name)

removePeer

public void removePeer(java.lang.String name)

getTimeOut

public int getTimeOut()

handleRequest

public byte[] handleRequest(byte[] dataReceived,
                            ResponseHandler output)
                     throws CommunicationException
Description copied from class: AbstractRequestListener
Handle both TCP and UDP requests

Specified by:
handleRequest in interface RequestListener
Overrides:
handleRequest in class AbstractRequestListener
Throws:
CommunicationException

outputPeerPort

private void outputPeerPort(AbstractMessage message,
                            ResponseHandler output)
                     throws CommunicationException
Parameters:
message -
output -
Throws:
CommunicationException

registerPeer

private void registerPeer(AbstractMessage message,
                          ResponseHandler output)
                   throws CommunicationException
Throws:
CommunicationException

unRegisterPeer

private void unRegisterPeer(AbstractMessage message,
                            ResponseHandler output)
                     throws CommunicationException
Unregister a peer from registry

Throws:
CommunicationException