|
Project JXTA | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.jxta.impl.rendezvous.RendezVousServiceProvider
net.jxta.impl.rendezvous.StdRendezVousService
net.jxta.impl.rendezvous.edge.EdgePeerRdvService
A JXTA RendezvousService
implementation which
implements the client portion of the standard JXTA Rendezvous Protocol (RVP).
RendezvousService
,
JXTA Protocols Specification : Rendezvous ProtocolNested Class Summary |
Nested classes inherited from class net.jxta.impl.rendezvous.StdRendezVousService |
StdRendezVousService.StdRdvProtocolListener |
Field Summary |
Fields inherited from class net.jxta.impl.rendezvous.StdRendezVousService |
ConnectedLeaseReply, ConnectedPeerReply, ConnectedRdvAdvReply, ConnectRequest, DEFAULT_MAX_TTL, DisconnectRequest, pName, pParam, RdvAdvReply, timer |
Fields inherited from class net.jxta.impl.rendezvous.RendezVousServiceProvider |
closed, group, HEADER_NAME, MAX_TTL, MESSAGE_NAMESPACE_NAME, PropPName, PropSName, rdvService, rendezvousMeter, rendezvousServiceMonitor |
Constructor Summary | |
EdgePeerRdvService(PeerGroup group,
RendezVousServiceImpl rdvService)
Constructor |
Method Summary | |
void |
challengeRendezVous(ID peerid,
long delay)
Resets the local idea of the lease to the specified value. As a result a lease reponse must be sought and obtained within the new specified delay or the rdv is considered disconnected. |
void |
disconnectFromRendezVous(ID peerId)
Remove a RendezVousService point. |
Vector |
getConnectedPeerIDs()
{@inheritDoc} |
Enumeration |
getConnectedPeers()
{@inheritDoc} |
Enumeration |
getConnectedRendezVous()
Returns an Enumeration of the PeerID all the RendezVous on which this Peer is currentely connected. |
Enumeration |
getDisconnectedRendezVous()
Returns an Enumeration of the PeerID all the RendezVous on which this Peer failed to connect to. |
PeerConnection |
getPeerConnection(ID peer)
Returns the peer connection or null if not present. |
protected PeerConnection[] |
getPeerConnections()
Returns a list of the current peer connections. |
boolean |
isConnectedToRendezVous()
Return true if connected to a rendezvous. |
void |
peerViewEvent(PeerViewEvent event)
peerViewEvent the peerview event |
void |
propagate(Message msg,
String serviceName,
String serviceParam,
int ttl)
Propagates a message onto as many peers on the local network as possible. Typically the message will go to all the peers to which at least one endpoint transport can address without using the router. This method sends the message to all peers, rendezvous peers and edge peer. This method of propation is very expensive and should not be frequentely used. When rendezvous peers are used in order to cache index of data, it is more efficient to use the walk() method. Only a single HOP at a time is performed. Messages are always delivered to the destination handler on arrival. This handler is responsible for repropagating further, if deemed appropropriate. Loop and TTL control are performed automatically. Messages can be propagated via this method for the first time or can be re-propagated by re-using a message that came in via propagation. In the later case, the TTL and loop detection parameters CANNOT be re-initialized. If one wants to "re-propagate" a message with a new TTL and blank gateways list one must generate a completely new message. This limits the risk of accidental propagation storms, although they can always be engineered deliberately. Note: The original msg is not modified and may be reused upon return. |
void |
propagateInGroup(Message msg,
String serviceName,
String serviceParam,
int ttl)
|
protected void |
repropagate(Message msg,
RendezVousPropagateMessage propHdr,
String serviceName,
String serviceParam)
|
void |
setChoiceDelay(long delay)
{@inheritDoc} |
protected int |
startApp(String[] arg)
Supply arguments and starts this service if it hadn't started by itself. Currently this service starts by itself and does not expect arguments. |
protected void |
stopApp()
|
void |
walk(Message msg,
String serviceName,
String serviceParam,
int ttl)
Walk a message through the rendezvous peers of the network: only rendezvous peers will receive the message. Only a single HOP at a time is performed. Messages are always delivered to the destination handler on arrival. This handler is responsible for repropagating further, if deemed appropropriate. Loop and TTL control are performed automatically. Messages can be propagated via this method for the first time or can be re-propagated by re-using a message that came in via propagation. In the later case, the TTL and loop detection parameters CANNOT be re-initialized. If one wants to "re-propagate" a message with a new TTL and blank gateways list one must generate a completely new message. This limits the risk of accidental propagation storms, although they can always be engineered deliberately. Note: The original msg is not modified and may be reused upon return. |
void |
walk(Vector destPeerIDs,
Message msg,
String serviceName,
String serviceParam,
int ttl)
Walk a message through the rendezvous peers of the network: only rendezvous peers will receive the message. Only a single HOP at a time is performed. Messages are always delivered to the destination handler on arrival. This handler is responsible for repropagating further, if deemed appropropriate. Loop and TTL control are performed automatically. Messages can be propagated via this method for the first time or can be re-propagated by re-using a message that came in via propagation. In the later case, the TTL and loop detection parameters CANNOT be re-initialized. If one wants to "re-propagate" a message with a new TTL and blank gateways list one must generate a completely new message. This limits the risk of accidental propagation storms, although they can always be engineered deliberately. Note: The original msg is not modified and may be reused upon return. |
Methods inherited from class net.jxta.impl.rendezvous.StdRendezVousService |
processRdvAdvReply, processReceivedMessage, propagate, propagateToNeighbors, sendDisconnect, sendDisconnect, sendToEachConnection, startApp |
Methods inherited from class net.jxta.impl.rendezvous.RendezVousServiceProvider |
checkPropHeader, getPeerAdvertisementDoc, getPropHeader, mkAddress, mkAddress, processIncomingMessage, sendToNetwork, setRendezvousServiceMonitor, updatePropHeader |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public EdgePeerRdvService(PeerGroup group, RendezVousServiceImpl rdvService)
Method Detail |
protected int startApp(String[] arg)
startApp
in class RendezVousServiceProvider
protected void stopApp()
stopApp
in class StdRendezVousService
public Vector getConnectedPeerIDs()
getConnectedPeerIDs
in class RendezVousServiceProvider
public Enumeration getConnectedPeers()
getConnectedPeers
in class RendezVousServiceProvider
public boolean isConnectedToRendezVous()
isConnectedToRendezVous
in class RendezVousServiceProvider
public Enumeration getConnectedRendezVous()
getConnectedRendezVous
in class RendezVousServiceProvider
public Enumeration getDisconnectedRendezVous()
getDisconnectedRendezVous
in class RendezVousServiceProvider
public void challengeRendezVous(ID peerid, long delay)
challengeRendezVous
in class RendezVousServiceProvider
peerid
- The peer to be chanllengeddelay
- The delaypublic void disconnectFromRendezVous(ID peerId)
disconnectFromRendezVous
in class RendezVousServiceProvider
peerId
- the PeerId of the RendezVous to disconnect from.public void propagate(Message msg, String serviceName, String serviceParam, int ttl) throws IOException
propagate
in class RendezVousServiceProvider
msg
- is the message to propagate.serviceName
- is the name of the serviceserviceParam
- is the parameter of the service
IOException
public void propagateInGroup(Message msg, String serviceName, String serviceParam, int ttl) throws IOException
propagateInGroup
in class RendezVousServiceProvider
IOException
protected void repropagate(Message msg, RendezVousPropagateMessage propHdr, String serviceName, String serviceParam)
repropagate
in class RendezVousServiceProvider
public void walk(Message msg, String serviceName, String serviceParam, int ttl) throws IOException
walk
in class RendezVousServiceProvider
msg
- is the message to walk.serviceName
- is the name of the serviceserviceParam
- is the parameter of the servicettl
- is the maximum TTL of the message (note that the Rendezvous
Service implementation is free to decrease that value.
IOException
- when walking the message is impossible (network failure)public void walk(Vector destPeerIDs, Message msg, String serviceName, String serviceParam, int ttl) throws IOException
walk
in class RendezVousServiceProvider
destPeerIDs
- is a Vector of PeerID of the peers which are receiving
first the walker. Note that each entry in the Vector will create its own
walker.msg
- is the message to walk.serviceName
- is the name of the serviceserviceParam
- is the parameter of the servicettl
- is the maximum TTL of the message (note that the Rendezvous
Service implementation is free to decrease that value.
IOException
- when walking the message is impossible (network failure)public PeerConnection getPeerConnection(ID peer)
StdRendezVousService
getPeerConnection
in class StdRendezVousService
protected PeerConnection[] getPeerConnections()
StdRendezVousService
getPeerConnections
in class StdRendezVousService
public void setChoiceDelay(long delay)
setChoiceDelay
in class RendezVousServiceProvider
public void peerViewEvent(PeerViewEvent event)
peerViewEvent
in interface PeerViewListener
|
JXTA J2SE | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |