📄 nonblockingmessenger.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><TITLE>NonBlockingMessenger (Project JXTA J2SE)</TITLE><META NAME="keywords" CONTENT="net.jxta.impl.endpoint.NonBlockingMessenger class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="NonBlockingMessenger (Project JXTA J2SE)";}</SCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" 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_top_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/NonBlockingMessenger.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><a href='http://www.jxta.org' target='_blank'>Project JXTA</a></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../net/jxta/impl/endpoint/MessengerPool.PooledMessengersGC.html" title="class in net.jxta.impl.endpoint"><B>PREV CLASS</B></A> <A HREF="../../../../net/jxta/impl/endpoint/QuotaIncomingMessageListener.html" title="class in net.jxta.impl.endpoint"><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="NonBlockingMessenger.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: NESTED | <A HREF="#fields_inherited_from_class_net.jxta.impl.endpoint.BasicMessenger">FIELD</A> | <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_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">net.jxta.impl.endpoint</FONT><BR>Class NonBlockingMessenger</H2><PRE>java.lang.Object <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../net/jxta/impl/endpoint/BasicMessenger.html" title="class in net.jxta.impl.endpoint">net.jxta.impl.endpoint.BasicMessenger</A> <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>net.jxta.impl.endpoint.NonBlockingMessenger</B></PRE><DL><DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../net/jxta/endpoint/EndpointMessenger.html" title="interface in net.jxta.endpoint">EndpointMessenger</A>, <A HREF="../../../../net/jxta/endpoint/Messenger.html" title="interface in net.jxta.endpoint">Messenger</A></DD></DL><DL><DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../net/jxta/impl/endpoint/AdaptorNonBlockingMessenger.html" title="class in net.jxta.impl.endpoint">AdaptorNonBlockingMessenger</A></DD></DL><HR><DL><DT>public abstract class <B>NonBlockingMessenger</B><DT>extends <A HREF="../../../../net/jxta/impl/endpoint/BasicMessenger.html" title="class in net.jxta.impl.endpoint">BasicMessenger</A></DL><P>Provides convenient basic non-blocking messenger functionality. <p/>It implements a default exception-throwing style method on top of the abstract listener-style non-blocking method, plus all the silly details. It always claims to be an asynchronous messenger; the implementation has to conform.<P><P><HR><P><!-- ======== NESTED CLASS SUMMARY ======== --><!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Field Summary</B></FONT></TD></TR></TABLE> <A NAME="fields_inherited_from_class_net.jxta.impl.endpoint.BasicMessenger"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Fields inherited from class net.jxta.impl.endpoint.<A HREF="../../../../net/jxta/impl/endpoint/BasicMessenger.html" title="class in net.jxta.impl.endpoint">BasicMessenger</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../../../net/jxta/impl/endpoint/BasicMessenger.html#closed">closed</A>, <A HREF="../../../../net/jxta/impl/endpoint/BasicMessenger.html#dstAddress">dstAddress</A>, <A HREF="../../../../net/jxta/impl/endpoint/BasicMessenger.html#propertyChangeSupport">propertyChangeSupport</A></CODE></TD></TR></TABLE> <!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Constructor Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../../../net/jxta/impl/endpoint/NonBlockingMessenger.html#NonBlockingMessenger(net.jxta.endpoint.EndpointAddress)">NonBlockingMessenger</A></B>(<A HREF="../../../../net/jxta/endpoint/EndpointAddress.html" title="class in net.jxta.endpoint">EndpointAddress</A> dest)</CODE><BR> Create a new basic messenger.</TD></TR></TABLE> <!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Method Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> boolean</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../net/jxta/impl/endpoint/NonBlockingMessenger.html#isSynchronous()">isSynchronous</A></B>()</CODE><BR> Returns <code>true</code> if the <code>sendMessage</code> methods of this messenger are fully synchronous. If this messenger is syncrhonous then it should be understood that <code>sendMessage</code> methods may : <p/><ul> <li>Not return until the message is fully sent.</li> <li>Block if another message is in the process of being sent.</li> </ul> <p/>If either of these conditions can occur then this method will return <code>true</code>. <p/>Always asynchronous.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> boolean</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../net/jxta/impl/endpoint/NonBlockingMessenger.html#sendMessage(net.jxta.endpoint.Message, java.lang.String, java.lang.String)">sendMessage</A></B>(<A HREF="../../../../net/jxta/endpoint/Message.html" title="class in net.jxta.endpoint">Message</A> msg, java.lang.String destService, java.lang.String destServiceParam)</CODE><BR> Sends a message to the destination. The message will be sent to the location specified by the destination endpoint address. The destination address will be modified to include the provided optional service name and service parameter. <p/><b>WARNING:</b> The Message object should not be reused or modified until <code>sendMessage</code> has completed. Concurrent modification of a message while a messenger is sending the message will produce incorrect and unpredictable results. For asynchronous messengers this method provides no notification of message send completion thus the message should <b>never</b> be reused. It is reccommended that a clone of the message be provided to send message: <p/><code><pre> messenger.sendMessage( (Message) myMessage.clone() ); </pre></code> <p/>Error Handling: <ul> <li>Common Aspects: <ul> <li>An <CODE>IOException</CODE> means that the message was not sent and this messanger cannot be used to send subsequent messages. Instances of <CODE>RuntimeException</CODE> mean that the message was not sent, but retries may or may not be possible based upon the status returned by <A HREF="../../../../net/jxta/endpoint/Messenger.html#isClosed()"><CODE>Messenger.isClosed()</CODE></A>.</li> <li>A return result of <code>false</code> indicates that the message was not accepted to be sent. Usually this is due to local resource limits being reached. Attempts may be made to later resend the message, usually after waiting for congestion to clear.</li> </ul> </li> <li>Synchronous Messengers: <ul> <li>A return result of <code>true</code> indicates that the message was successfully sent. <b>It does not generally imply that the destination will successfully receive the message.</b></li> </ul> </li> <li>Asynchronous Messengers: <ul> <li>A return result of <code>true</code> indicates that the message was accepted to be sent. <b>It does not imply that the message
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -