📄 nonblockingoutputpipe.html
字号:
public void <B>close</B>()</PRE><DL><DD>close the pipe<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL></DL></DD></DL><HR><A NAME="isClosed()"><!-- --></A><H3>isClosed</H3><PRE>public boolean <B>isClosed</B>()</PRE><DL><DD>Returns <code>true</code> if this pipe is closed and no longer accepting messages to be sent. The pipe should be discarded.<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#isClosed()">isClosed</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD><code>true</code> if this pipe is closed, otherwise <code>false</code>.</DL></DD></DL><HR><A NAME="getType()"><!-- --></A><H3>getType</H3><PRE>public final java.lang.String <B>getType</B>()</PRE><DL><DD>Gets the pipe type<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#getType()">getType</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD>The type</DL></DD></DL><HR><A NAME="getPipeID()"><!-- --></A><H3>getPipeID</H3><PRE>public final <A HREF="../../../../net/jxta/id/ID.html" title="class in net.jxta.id">ID</A> <B>getPipeID</B>()</PRE><DL><DD>Gets the pipe id<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#getPipeID()">getPipeID</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD>The type</DL></DD></DL><HR><A NAME="getName()"><!-- --></A><H3>getName</H3><PRE>public final java.lang.String <B>getName</B>()</PRE><DL><DD>Gets the pipe name<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#getName()">getName</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD>The name</DL></DD></DL><HR><A NAME="getAdvertisement()"><!-- --></A><H3>getAdvertisement</H3><PRE>public final <A HREF="../../../../net/jxta/protocol/PipeAdvertisement.html" title="class in net.jxta.protocol">PipeAdvertisement</A> <B>getAdvertisement</B>()</PRE><DL><DD>Gets the pipe advertisement<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#getAdvertisement()">getAdvertisement</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD>The advertisement</DL></DD></DL><HR><A NAME="send(net.jxta.endpoint.Message)"><!-- --></A><H3>send</H3><PRE>public boolean <B>send</B>(<A HREF="../../../../net/jxta/endpoint/Message.html" title="class in net.jxta.endpoint">Message</A> msg) throws java.io.IOException</PRE><DL><DD>Send a message throught the pipe <p/><b>WARNING:</b> The message object used when sending a pipe message should not be reused or modified after the <A HREF="../../../../net/jxta/pipe/OutputPipe.html#send(net.jxta.endpoint.Message)"><CODE>OutputPipe.send(Message)</CODE></A> call is made. Concurrent modification of messages will produce unexpected result.<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html#send(net.jxta.endpoint.Message)">send</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/pipe/OutputPipe.html" title="interface in net.jxta.pipe">OutputPipe</A></CODE></DL></DD><DD><DL><DT><B>Parameters:</B><DD><CODE>msg</CODE> - is the PipeMessage to be sent.<DT><B>Returns:</B><DD>boolean <code>true</code> if the message has been sent otherwise <code>false</code>. <code>false</code>. is commonly returned for non-error related congestion, meaning that you should be able to send the message after waiting some amount of time.<DT><B>Throws:</B><DD><CODE>java.io.IOException</CODE> - output pipe error</DL></DD></DL><HR><A NAME="run()"><!-- --></A><H3>run</H3><PRE>public void <B>run</B>()</PRE><DL><DD> <p/>Sends the messages. <p>This method does a lot of things. It has several distinct states: <p/><table border="1"> <thead> <tr> <th>STATE</th> <th>Activity</th> <tr> </thead> <tbody> <tr> <th>ACQUIREMESSENGER</th <td>Acquire a messenger to the specified destination peer. If a messenger is acquired, then go to <b>SENDMESSAGES</b> state otherwise go to <b>STARTMIGRATE</b>.</td> </tr> <tr> <th>SENDMESSAGES</th> <td>Send messages until queue is closed and all messages have been sent. Go to state <b>CLOSED</b> when done. If the messenger becomes closed then go to <b>ACQUIREMESSENGER</b>. <emphasis>If there are no messages to send for <code>IDLEWORKERLINGER</code> millisecondsthen the worker thread will exit. It will only be restarted if another message is eventually enqueued.</emphasis> </td> </tr> <tr> <th>STARTVERIFY</th> <td>Starts a verification query(s) to the destination peer. This state is activated after <code>PipeServiceImpl.VERIFYINTERVAL</code> milliseconds of sending messages. The query responses will be tracked in the <b>PENDINGVERIFY</b> state.</td> </tr> <tr> <th>STARTMIGRATE</th> <td>Starts a query(s) for peers listening on this pipe. The query responses will be tracked in the <b>PENDINGMIGRATE</b> state.</td> </tr> <tr> <th>PENDINGVERIFY</th> <td>Issues query messages to verify that the destination peer is still listening on the pipe. Queries are issued every <code>QUERYINTERVAL</code> milliseconds. If a positive response is received, go to state <b>ACQUIREMESSENGER</b>. If no response is received within <b>QUERYTIMEOUT</b> milliseconds or a negative response is received then go to state <b>STARTMIGRATE</b>.</td> </tr> <tr> <th>PENDINGMIGRATE</th> <td>Issues query messages to find a new destination peer. Queries are issued every <code>QUERYINTERVAL</code> milliseconds. If a positive response is received, go to state <b>ACQUIREMESSENGER</b>. If no positive response from an eligible peer is received within <b>QUERYTIMEOUT</b> milliseconds go to state <b>CLOSED</b>.</td> </tr> <tr> <th>CLOSED</th> <td>Exit the worker thread.</td> </tr> </tbody> </table><P><DD><DL><DT><B>Specified by:</B><DD><CODE>run</CODE> in interface <CODE>java.lang.Runnable</CODE></DL></DD><DD><DL></DL></DD></DL><HR><A NAME="mkAddress(net.jxta.id.ID, net.jxta.id.ID)"><!-- --></A><H3>mkAddress</H3><PRE>protected <A HREF="../../../../net/jxta/endpoint/EndpointAddress.html" title="class in net.jxta.endpoint">EndpointAddress</A> <B>mkAddress</B>(<A HREF="../../../../net/jxta/id/ID.html" title="class in net.jxta.id">ID</A> destPeer, <A HREF="../../../../net/jxta/id/ID.html" title="class in net.jxta.id">ID</A> pipeID)</PRE><DL><DD>Convenience method for constructing a peer endpoint address from its peer id<P><DD><DL></DL></DD><DD><DL><DT><B>Parameters:</B><DD><CODE>destPeer</CODE> - the desitnation peer<DD><CODE>pipeID</CODE> - the pipe to put in the param field.<DT><B>Returns:</B><DD>the pipe endpoint address.</DL></DD></DL><HR><A NAME="pipeNAKEvent(net.jxta.impl.pipe.PipeResolver.Event)"><!-- --></A><H3>pipeNAKEvent</H3><PRE>public boolean <B>pipeNAKEvent</B>(<A HREF="../../../../net/jxta/impl/pipe/PipeResolver.Event.html" title="class in net.jxta.impl.pipe">PipeResolver.Event</A> event)</PRE><DL><DD>A NAK Event was recieved for this pipe<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/impl/pipe/PipeResolver.Listener.html#pipeNAKEvent(net.jxta.impl.pipe.PipeResolver.Event)">pipeNAKEvent</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/impl/pipe/PipeResolver.Listener.html" title="interface in net.jxta.impl.pipe">PipeResolver.Listener</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD>true if the event was handled otherwise false</DL></DD></DL><HR><A NAME="pipeResolveEvent(net.jxta.impl.pipe.PipeResolver.Event)"><!-- --></A><H3>pipeResolveEvent</H3><PRE>public boolean <B>pipeResolveEvent</B>(<A HREF="../../../../net/jxta/impl/pipe/PipeResolver.Event.html" title="class in net.jxta.impl.pipe">PipeResolver.Event</A> event)</PRE><DL><DD>Pipe Resolve Event<P><DD><DL><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jxta/impl/pipe/PipeResolver.Listener.html#pipeResolveEvent(net.jxta.impl.pipe.PipeResolver.Event)">pipeResolveEvent</A></CODE> in interface <CODE><A HREF="../../../../net/jxta/impl/pipe/PipeResolver.Listener.html" title="interface in net.jxta.impl.pipe">PipeResolver.Listener</A></CODE></DL></DD><DD><DL><DT><B>Returns:</B><DD>true if the event was handled otherwise false</DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/NonBlockingOutputPipe.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>JXTA J2SE</EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../net/jxta/impl/pipe/InputPipeImpl.html" title="class in net.jxta.impl.pipe"><B>PREV CLASS</B></A> <A HREF="../../../../net/jxta/impl/pipe/NonBlockingOutputPipe.workerState.html" title="class in net.jxta.impl.pipe"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A> <A HREF="NonBlockingOutputPipe.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -