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

java.lang.Object
  extended by uk.ac.ic.doc.automed.p2p.communication.AbstractRequestListener
      extended by uk.ac.ic.doc.automed.p2p.AutoMedPeer
          extended by uk.ac.ic.doc.automed.p2p.Peer
              extended by uk.ac.ic.doc.automed.p2p.DirectoryServicePeer
All Implemented Interfaces:
RequestListener, StateChangedListener

public class DirectoryServicePeer
extends Peer

DirectoryServicePeer.java

Represents directory service peer on the network. It is basically an AutoMedPeer with capabilities of an P2PDirectory object.

As such this class relies on P2PDirectory to serve network requests but but uses its own handling routine.

Author:
Duc M Le dmle@doc.ic.ac.uk
Created on April 19, 2006
Department of Computing, Imperial College

Field Summary
private  P2PDirectory _directory
           
private static DirectoryServicePeer _dsp
           
private  java.util.List _eventListeners
           
private  java.util.List _requestListeners
           
private  SICP _sicp
           
 
Fields inherited from class uk.ac.ic.doc.automed.p2p.Peer
_nsp, _p2pcfg, _rexe
 
Fields inherited from class uk.ac.ic.doc.automed.p2p.AutoMedPeer
config, peerAddress, peerObjs, role, ROLE_AUTOMED_PEER, ROLE_DSP, ROLE_PEER, thePeer
 
Constructor Summary
protected DirectoryServicePeer(java.lang.String name, PeerStateHandler stateHandler)
          Creates a new instance of DirectoryServicePeer
protected DirectoryServicePeer(java.lang.String name, PeerStateHandler stateHandler, java.lang.String repCfgFile)
           
 
Method Summary
 void addEventListener(java.util.EventListener listener)
          Register an EventListener object
 void addRequestListener(RequestListener listener)
          Register a RequestListener object to client requests
 P2PDirectory getDirectory()
          Return directory service object
static DirectoryServicePeer getInstance(java.lang.String name, PeerStateHandler stateHandler)
          Returns a single instance of the dsp
static DirectoryServicePeer getInstance(java.lang.String name, PeerStateHandler stateHandler, java.lang.String repCfgFile)
           
private  void init()
           
 void initDirectoryRepository()
          This method allows a peer to indirectly re-initialises the directory repository
used by the peer's P2PDirectory instance
 void initHelloProtocol()
          Intialise the hello protocol for directory service
 NSP initNSP()
           
 void initSICP()
          Initialises SICP protocol
 
Methods inherited from class uk.ac.ic.doc.automed.p2p.Peer
close, finalize, getAddress, getDefaultP2PConfig, getDHTProtocol, getDSRConfigFileName, getNSP, getQEP, getQueryAggregator, getREXEP, getSICP, getSMRProtocol, initSMRProtocol, isDSRConfigurationChanged, isSMREnabled, newPeer, newPeer, newPeer, newPeer, newPeer, newPeerProcess, outputQuery, refreshDSRConfiguration, requestAbstractPathToSource, requestQuery, shutDownSMRProtocol
 
Methods inherited from class uk.ac.ic.doc.automed.p2p.AutoMedPeer
addKnownPeer, authenticate, clearResources, getAutoMedPeer, getAutoMedPeer, getCache, getDaemonPort, getKnownPeerPort, getMessageHandler, getMessagingHelper, getName, getPeerAddress, getPeerConfig, getPeerHost, getPeerPort, getPeerState, getQueryMediator, getReplyForRequest, getRole, getSchemaList, getStateHandler, handleRequest, initAuthentication, initDirectory, initMessagingPeer, initRegistry, initRepository, isJoinedNetwork, newAutoMedPeer, outputPathway, outputPathwayToSource, outputSchema, outputSourcePathways, performStateAction, register, requestPathToSource, requestPathway, requestSchema, sendRequest, setName, setPeerAddress, setPeerState, shutdown, unregister, wrapSchema, wrapSchema
 
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, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_dsp

private static DirectoryServicePeer _dsp

_requestListeners

private java.util.List _requestListeners

_eventListeners

private java.util.List _eventListeners

_directory

private P2PDirectory _directory

_sicp

private SICP _sicp
Constructor Detail

DirectoryServicePeer

protected DirectoryServicePeer(java.lang.String name,
                               PeerStateHandler stateHandler)
                        throws StateChangedException,
                               AutoMedException
Creates a new instance of DirectoryServicePeer

Throws:
StateChangedException
AutoMedException

DirectoryServicePeer

protected DirectoryServicePeer(java.lang.String name,
                               PeerStateHandler stateHandler,
                               java.lang.String repCfgFile)
                        throws StateChangedException,
                               AutoMedException
Throws:
StateChangedException
AutoMedException
Method Detail

getInstance

public static DirectoryServicePeer getInstance(java.lang.String name,
                                               PeerStateHandler stateHandler)
                                        throws StateChangedException,
                                               AutoMedException
Returns a single instance of the dsp

Throws:
StateChangedException
AutoMedException

getInstance

public static DirectoryServicePeer getInstance(java.lang.String name,
                                               PeerStateHandler stateHandler,
                                               java.lang.String repCfgFile)
                                        throws StateChangedException,
                                               AutoMedException
Throws:
StateChangedException
AutoMedException

init

private void init()
           throws AutoMedException
Throws:
AutoMedException

initDirectoryRepository

public void initDirectoryRepository()
                             throws AutoMedException
This method allows a peer to indirectly re-initialises the directory repository
used by the peer's P2PDirectory instance

Overrides:
initDirectoryRepository in class AutoMedPeer
Throws:
AutoMedException

getDirectory

public P2PDirectory getDirectory()
Return directory service object

Overrides:
getDirectory in class AutoMedPeer

addRequestListener

public void addRequestListener(RequestListener listener)
Register a RequestListener object to client requests

Overrides:
addRequestListener in class AutoMedPeer

addEventListener

public void addEventListener(java.util.EventListener listener)
Register an EventListener object


initHelloProtocol

public void initHelloProtocol()
                       throws CommunicationException,
                              AutoMedException
Intialise the hello protocol for directory service

Overrides:
initHelloProtocol in class Peer
Throws:
CommunicationException
AutoMedException

initSICP

public void initSICP()
Initialises SICP protocol

Overrides:
initSICP in class Peer

initNSP

public NSP initNSP()