|
Project JXTA | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.jxta.impl.pipe.NonBlockingOutputPipe
net.jxta.impl.pipe.SecureOutputPipe
This class implements the Secure non blocking Output Pipe
Nested Class Summary | |
(package private) static class |
NonBlockingOutputPipe.workerState
Tracks the state of our worker thread. |
Constructor Summary | |
SecureOutputPipe(PeerGroup group,
PipeResolver resolver,
PipeAdvertisement pipeAdv,
PeerID destPeer,
Set peers)
|
Method Summary | |
void |
close()
|
protected void |
finalize()
|
PipeAdvertisement |
getAdvertisement()
|
String |
getName()
|
ID |
getPipeID()
|
String |
getType()
|
boolean |
isClosed()
|
protected EndpointAddress |
mkAddress(ID destPeer,
ID pipeID)
Convenience method for constructing a peer endpoint address from its peer id |
boolean |
pipeNAKEvent(PipeResolver.Event event)
A NAK Event was received for this pipe |
boolean |
pipeResolveEvent(PipeResolver.Event event)
Pipe Resolve Event |
void |
run()
Sends the messages. |
boolean |
send(Message msg)
We can't fail to send a message. |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public SecureOutputPipe(PeerGroup group, PipeResolver resolver, PipeAdvertisement pipeAdv, PeerID destPeer, Set peers) throws IOException
Method Detail |
public boolean send(Message msg) throws IOException
send
in interface OutputPipe
send
in class NonBlockingOutputPipe
IOException
protected EndpointAddress mkAddress(ID destPeer, ID pipeID)
mkAddress
in class NonBlockingOutputPipe
destPeer
- the desitnation peerpipeID
- the pipe to put in the param field.
protected void finalize()
public void close()
close
in interface OutputPipe
public boolean isClosed()
isClosed
in interface OutputPipe
public final String getType()
getType
in interface OutputPipe
public final ID getPipeID()
getPipeID
in interface OutputPipe
public final String getName()
getName
in interface OutputPipe
public final PipeAdvertisement getAdvertisement()
getAdvertisement
in interface OutputPipe
public void run()
This method does a lot of things. It has several distinct states:
STATE | Activity |
---|---|
ACQUIREMESSENGER | Acquire a messenger to the specified destination peer. If a messenger is acquired, then go to SENDMESSAGES state otherwise go to STARTMIGRATE.|
SENDMESSAGES | Send messages until queue is closed and all messages have
been sent. Go to state CLOSED when done. If the messenger
becomes closed then go to ACQUIREMESSENGER. IDLEWORKERLINGER
millisecondsthen the worker thread will exit. It will only be
restarted if another message is eventually enqueued. |
STARTVERIFY | Starts a verification query(s) to the destination peer. This
state is activated after
PipeServiceImpl.VERIFYINTERVAL milliseconds of
sending messages. The query responses will be tracked in the
PENDINGVERIFY state. |
STARTMIGRATE | Starts a query(s) for peers listening on this pipe. The query responses will be tracked in the PENDINGMIGRATE state. |
PENDINGVERIFY | Issues query messages to verify that the destination peer is
still listening on the pipe. Queries are issued every
QUERYINTERVAL milliseconds. If a positive response
is received, go to state ACQUIREMESSENGER. If no response
is received within QUERYTIMEOUT milliseconds or a
negative response is received then go to state
STARTMIGRATE. |
PENDINGMIGRATE | Issues query messages to find a new destination peer.
Queries are issued every QUERYINTERVAL milliseconds.
If a positive response is received, go to state
ACQUIREMESSENGER. If no positive response from an
eligible peer is received within QUERYTIMEOUT
milliseconds go to state CLOSED. |
CLOSED | Exit the worker thread. |
run
in interface Runnable
public boolean pipeNAKEvent(PipeResolver.Event event)
pipeNAKEvent
in interface PipeResolver.Listener
public boolean pipeResolveEvent(PipeResolver.Event event)
pipeResolveEvent
in interface PipeResolver.Listener
|
JXTA J2SE | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |