FreePastry/docs/javadoc/rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html
ChronosX88 aaa73fe8b3 Pew
2019-05-13 16:45:05 +04:00

1080 lines
88 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_07) on Fri Mar 13 20:01:24 CET 2009 -->
<TITLE>
RendezvousSocketPastryNodeFactory (Rice Pastry - API Specifications)
</TITLE>
<META NAME="date" CONTENT="2009-03-13">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RendezvousSocketPastryNodeFactory (Rice Pastry - API Specifications)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= 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=2 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>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RendezvousSocketPastryNodeFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSourceRouteStrategy.html" title="class in rice.pastry.socket.nat.rendezvous"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="RendezvousSocketPastryNodeFactory.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<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:&nbsp;<A HREF="#nested_classes_inherited_from_class_rice.pastry.socket.SocketPastryNodeFactory">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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">
rice.pastry.socket.nat.rendezvous</FONT>
<BR>
Class RendezvousSocketPastryNodeFactory</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../rice/pastry/PastryNodeFactory.html" title="class in rice.pastry">rice.pastry.PastryNodeFactory</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html" title="class in rice.pastry.transport">rice.pastry.transport.TransportPastryNodeFactory</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">rice.pastry.socket.SocketPastryNodeFactory</A>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>rice.pastry.socket.nat.rendezvous.RendezvousSocketPastryNodeFactory</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../rice/pastry/socket/internet/InternetPastryNodeFactory.html" title="class in rice.pastry.socket.internet">InternetPastryNodeFactory</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>RendezvousSocketPastryNodeFactory</B><DT>extends <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></DL>
</PRE>
<P>
This class assembles the rendezvous layer with the rendezvous app.
Need to think about where this best goes, but for now, we'll put it just above the magic number layer.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Jeff Hoye</DD>
</DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_rice.pastry.socket.SocketPastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Nested classes/interfaces inherited from class rice.pastry.socket.<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TLBootstrapper.html" title="class in rice.pastry.socket">SocketPastryNodeFactory.TLBootstrapper</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TransLiveness.html" title="interface in rice.pastry.socket">SocketPastryNodeFactory.TransLiveness</A>&lt;<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TransLiveness.html" title="type parameter in SocketPastryNodeFactory.TransLiveness">Identifier</A>,<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TransLiveness.html" title="type parameter in SocketPastryNodeFactory.TransLiveness">MessageType</A>&gt;, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TransLivenessProximity.html" title="interface in rice.pastry.socket">SocketPastryNodeFactory.TransLivenessProximity</A>&lt;<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TransLivenessProximity.html" title="type parameter in SocketPastryNodeFactory.TransLivenessProximity">Identifier</A>,<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.TransLivenessProximity.html" title="type parameter in SocketPastryNodeFactory.TransLivenessProximity">MessageType</A>&gt;</CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#CONTACT_STATE">CONTACT_STATE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maps to a byte contactState</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../rice/environment/random/RandomSource.html" title="interface in rice.environment.random">RandomSource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#random">random</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#RENDEZVOUS_CONTACT_DIRECT_STRATEGY">RENDEZVOUS_CONTACT_DIRECT_STRATEGY</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getVars() maps to a ContactDirectStrategy<RendezvousSocketNodeHandle></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#RENDEZVOUS_STRATEGY">RENDEZVOUS_STRATEGY</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps to a RendezvousStrategy<RendezvousSocketNodeHandle></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#RENDEZVOUS_TL">RENDEZVOUS_TL</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps to a RendezvousTransportLayerImpl<InetSocketAddress, RendezvousSocketNodeHandle></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#SIMULATE_FIREWALL">SIMULATE_FIREWALL</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps to a boolean, if true then simulates a firewall</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.pastry.socket.SocketPastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class rice.pastry.socket.<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#findFireWallPolicy">findFireWallPolicy</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#IP_SERVICE">IP_SERVICE</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#localAddress">localAddress</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#MULTI_ADDRESS_STRATEGY">MULTI_ADDRESS_STRATEGY</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#MULTI_INET_TL">MULTI_INET_TL</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#NETWORK_INFO_NODE_HANDLE_INDEX">NETWORK_INFO_NODE_HANDLE_INDEX</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#nidFactory">nidFactory</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#NODE_HANDLE_FACTORY">NODE_HANDLE_FACTORY</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#PASTRY_MAGIC_NUMBER">PASTRY_MAGIC_NUMBER</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#PRIORITY_TL">PRIORITY_TL</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#PROXY_ADDRESS">PROXY_ADDRESS</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#testFireWallPolicy">testFireWallPolicy</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.pastry.transport.TransportPastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class rice.pastry.transport.<A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html" title="class in rice.pastry.transport">TransportPastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#leafSetMaintFreq">leafSetMaintFreq</A>, <A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#routeSetMaintFreq">routeSetMaintFreq</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.pastry.PastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class rice.pastry.<A HREF="../../../../../rice/pastry/PastryNodeFactory.html" title="class in rice.pastry">PastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/PastryNodeFactory.html#environment">environment</A>, <A HREF="../../../../../rice/pastry/PastryNodeFactory.html#logger">logger</A>, <A HREF="../../../../../rice/pastry/PastryNodeFactory.html#lSetSize">lSetSize</A>, <A HREF="../../../../../rice/pastry/PastryNodeFactory.html#rtBase">rtBase</A>, <A HREF="../../../../../rice/pastry/PastryNodeFactory.html#rtMax">rtMax</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#RendezvousSocketPastryNodeFactory(rice.pastry.NodeIdFactory, java.net.InetAddress, int, rice.environment.Environment, boolean)">RendezvousSocketPastryNodeFactory</A></B>(<A HREF="../../../../../rice/pastry/NodeIdFactory.html" title="interface in rice.pastry">NodeIdFactory</A>&nbsp;nf,
java.net.InetAddress&nbsp;bindAddress,
int&nbsp;startPort,
<A HREF="../../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;env,
boolean&nbsp;firewalled)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#RendezvousSocketPastryNodeFactory(rice.pastry.NodeIdFactory, int, rice.environment.Environment, boolean)">RendezvousSocketPastryNodeFactory</A></B>(<A HREF="../../../../../rice/pastry/NodeIdFactory.html" title="interface in rice.pastry">NodeIdFactory</A>&nbsp;nf,
int&nbsp;startPort,
<A HREF="../../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;env,
boolean&nbsp;firewalled)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#generatePilotStrategy(rice.pastry.PastryNode, org.mpisws.p2p.transport.rendezvous.RendezvousTransportLayerImpl)">generatePilotStrategy</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousTransportLayerImpl.html" title="class in org.mpisws.p2p.transport.rendezvous">RendezvousTransportLayerImpl</A>&lt;java.net.InetSocketAddress,<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;&nbsp;rendezvousLayer)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getBootstrapper(rice.pastry.PastryNode, rice.pastry.transport.NodeHandleAdapter, rice.pastry.NodeHandleFactory, rice.pastry.standard.ProximityNeighborSelector)">getBootstrapper</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/transport/NodeHandleAdapter.html" title="class in rice.pastry.transport">NodeHandleAdapter</A>&nbsp;tl,
<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;handleFactory,
<A HREF="../../../../../rice/pastry/standard/ProximityNeighborSelector.html" title="interface in rice.pastry.standard">ProximityNeighborSelector</A>&nbsp;pns)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This code opens a pilot to our bootstrap node before proceeding.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/ContactDeserializer.html" title="interface in org.mpisws.p2p.transport.rendezvous">ContactDeserializer</A>&lt;java.net.InetSocketAddress,<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getContactDeserializer(rice.pastry.PastryNode)">getContactDeserializer</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/ContactDirectStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">ContactDirectStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getContactDirectStrategy(rice.pastry.PastryNode)">getContactDirectStrategy</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/identity/IdentitySerializer.html" title="interface in org.mpisws.p2p.transport.identity">IdentitySerializer</A>&lt;<A HREF="../../../../../rice/pastry/socket/TransportLayerNodeHandle.html" title="class in rice.pastry.socket">TransportLayerNodeHandle</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;,<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>,<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getIdentiySerializer(rice.pastry.PastryNode, rice.pastry.socket.SocketNodeHandleFactory)">getIdentiySerializer</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/socket/SocketNodeHandleFactory.html" title="class in rice.pastry.socket">SocketNodeHandleFactory</A>&nbsp;handleFactory)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getIpServiceTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)">getIpServiceTransportLayer</A></B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;&nbsp;wtl,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../rice/pastry/join/JoinProtocol.html" title="interface in rice.pastry.join">JoinProtocol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getJoinProtocol(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.ReadyStrategy)">getJoinProtocol</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A>&nbsp;leafSet,
<A HREF="../../../../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A>&nbsp;routeTable,
<A HREF="../../../../../rice/pastry/ReadyStrategy.html" title="interface in rice.pastry">ReadyStrategy</A>&nbsp;lsProtocol)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getLocalHandle(rice.pastry.PastryNode, rice.pastry.NodeHandleFactory)">getLocalHandle</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;nhf)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/manager/simple/NextHopStrategy.html" title="interface in org.mpisws.p2p.transport.sourceroute.manager.simple">NextHopStrategy</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getNextHopStrategy(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.liveness.Pinger, rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)">getNextHopStrategy</A></B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;,java.nio.ByteBuffer&gt;&nbsp;ltl,
<A HREF="../../../../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&gt;&nbsp;livenessProvider,
<A HREF="../../../../../org/mpisws/p2p/transport/liveness/Pinger.html" title="interface in org.mpisws.p2p.transport.liveness">Pinger</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&gt;&nbsp;pinger,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;proxyAddress,
<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/factory/MultiAddressSourceRouteFactory.html" title="class in org.mpisws.p2p.transport.sourceroute.factory">MultiAddressSourceRouteFactory</A>&nbsp;esrFactory)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getNodeHandleFactory(rice.pastry.PastryNode)">getNodeHandleFactory</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/PilotFinder.html" title="interface in org.mpisws.p2p.transport.rendezvous">PilotFinder</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getPilotFinder(rice.pastry.PastryNode)">getPilotFinder</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/priority/PriorityTransportLayer.html" title="interface in org.mpisws.p2p.transport.priority">PriorityTransportLayer</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getPriorityTransportLayer(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.proximity.ProximityProvider, rice.pastry.PastryNode)">getPriorityTransportLayer</A></B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>,java.nio.ByteBuffer&gt;&nbsp;trans,
<A HREF="../../../../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&nbsp;liveness,
<A HREF="../../../../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&nbsp;prox,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../rice/pastry/standard/ProximityNeighborSelector.html" title="interface in rice.pastry.standard">ProximityNeighborSelector</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getProximityNeighborSelector(rice.pastry.PastryNode)">getProximityNeighborSelector</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can be overridden.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousGenerationStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">RendezvousGenerationStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getRendezvousGenerator(rice.pastry.PastryNode)">getRendezvousGenerator</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">RendezvousStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getRendezvousStrategy(rice.pastry.PastryNode)">getRendezvousStrategy</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">RendezvousStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getRendezvousStrategyHelper(rice.pastry.PastryNode)">getRendezvousStrategyHelper</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is an annoying hack.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getRendezvousTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)">getRendezvousTransportLayer</A></B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;&nbsp;mtl,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/ResponseStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">ResponseStrategy</A>&lt;java.net.InetSocketAddress&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getResponseStrategy(rice.pastry.PastryNode)">getResponseStrategy</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#getWireTransportLayer(java.net.InetSocketAddress, rice.pastry.PastryNode)">getWireTransportLayer</A></B>(java.net.InetSocketAddress&nbsp;innermostAddress,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For testing, may return a FirewallTL impl for testing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#isInternetRoutablePrefix(java.net.InetAddress)">isInternetRoutablePrefix</A></B>(java.net.InetAddress&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#newNodeSelector(rice.pastry.Id, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, rice.Continuation, java.util.Map, boolean)">newNodeSelector</A></B>(<A HREF="../../../../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;nodeId,
<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;proxyAddress,
<A HREF="../../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&lt;<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>,java.io.IOException&gt;&nbsp;deliverResultToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;initialVars,
boolean&nbsp;firewalled)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can override the contactState on a per-node basis</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#newNodeSelector(rice.pastry.Id, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, rice.Continuation, java.util.Map, byte)">newNodeSelector</A></B>(<A HREF="../../../../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;nodeId,
<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;proxyAddress,
<A HREF="../../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&lt;<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>,java.io.IOException&gt;&nbsp;deliverResultToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;initialVars,
byte&nbsp;contactState)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can override the contactState on a per-node basis</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#registerApps(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.transport.NodeHandleAdapter, rice.pastry.NodeHandleFactory)">registerApps</A></B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A>&nbsp;leafSet,
<A HREF="../../../../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A>&nbsp;routeTable,
<A HREF="../../../../../rice/pastry/transport/NodeHandleAdapter.html" title="class in rice.pastry.transport">NodeHandleAdapter</A>&nbsp;nha,
<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;handleFactory)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html#setContactState(byte)">setContactState</A></B>(byte&nbsp;contactState)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.pastry.socket.SocketPastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class rice.pastry.socket.<A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#cloneEnvironment(rice.environment.Environment, rice.pastry.Id)">cloneEnvironment</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#cloneLogManager(rice.environment.Environment, rice.pastry.Id)">cloneLogManager</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#cloneProcessor(rice.environment.Environment, rice.pastry.Id, rice.environment.logging.LogManager)">cloneProcessor</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#cloneRandomSource(rice.environment.Environment, rice.pastry.Id, rice.environment.logging.LogManager)">cloneRandomSource</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#cloneSelectorManager(rice.environment.Environment, rice.pastry.Id, rice.environment.logging.LogManager)">cloneSelectorManager</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getBindAddress()">getBindAddress</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getBindStrategy()">getBindStrategy</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getBottomLayers(rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress)">getBottomLayers</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getCommonAPITransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode, rice.pastry.transport.TLDeserializer)">getCommonAPITransportLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getIdentityImpl(rice.pastry.PastryNode, rice.pastry.socket.SocketNodeHandleFactory)">getIdentityImpl</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getLimitSocketsTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)">getLimitSocketsTransportLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getLivenessTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)">getLivenessTransportLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getLowerIdentityLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode, org.mpisws.p2p.transport.identity.IdentityImpl)">getLowerIdentityLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getMagicNumberTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)">getMagicNumberTransportLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getMultiAddressSourceRouteFactory(rice.pastry.PastryNode)">getMultiAddressSourceRouteFactory</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getMultiAddressSourceRouteTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress)">getMultiAddressSourceRouteTransportLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNextInetSocketAddress()">getNextInetSocketAddress</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNodeHandle(java.net.InetSocketAddress)">getNodeHandle</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNodeHandle(java.net.InetSocketAddress[], rice.Continuation)">getNodeHandle</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNodeHandle(java.net.InetSocketAddress[], int)">getNodeHandle</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNodeHandle(java.net.InetSocketAddress, int)">getNodeHandle</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNodeHandleAdapter(rice.pastry.PastryNode, rice.pastry.NodeHandleFactory, rice.pastry.transport.TLDeserializer)">getNodeHandleAdapter</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getOptionsAdder(rice.pastry.PastryNode)">getOptionsAdder</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getProbeStrategy(rice.pastry.PastryNode)">getProbeStrategy</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getSocketCountListener(rice.pastry.PastryNode)">getSocketCountListener</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getSourceRouteForwardStrategy(rice.pastry.PastryNode, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)">getSourceRouteForwardStrategy</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getSourceRouteManagerLayer(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.liveness.Pinger, rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)">getSourceRouteManagerLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getSourceRouteStrategy(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.liveness.Pinger, rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)">getSourceRouteStrategy</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getSourceRouteTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)">getSourceRouteTransportLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getUpperIdentityLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode, org.mpisws.p2p.transport.identity.IdentityImpl, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.proximity.ProximityProvider, org.mpisws.p2p.transport.liveness.OverrideLiveness)">getUpperIdentityLayer</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode()">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.Id)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.Id, java.net.InetSocketAddress)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.Id, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(java.net.InetSocketAddress)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.NodeHandle)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.NodeHandle, rice.pastry.Id)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.NodeHandle, rice.pastry.Id, java.net.InetSocketAddress)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNode(rice.pastry.NodeHandle, java.net.InetSocketAddress)">newNode</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#newNodeSelector(rice.pastry.Id, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, rice.Continuation, java.util.Map)">newNodeSelector</A>, <A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#verifyConnection(int, java.net.InetSocketAddress, java.net.InetSocketAddress[], rice.environment.Environment, rice.environment.logging.Logger)">verifyConnection</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.pastry.transport.TransportPastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class rice.pastry.transport.<A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html" title="class in rice.pastry.transport">TransportPastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getLeafSetProtocol(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable)">getLeafSetProtocol</A>, <A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getRouterStrategy(rice.pastry.PastryNode)">getRouterStrategy</A>, <A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getRouteSetProtocol(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable)">getRouteSetProtocol</A>, <A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getTLDeserializer(rice.pastry.NodeHandleFactory, rice.pastry.PastryNode)">getTLDeserializer</A>, <A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#nodeHandleHelper(rice.pastry.PastryNode)">nodeHandleHelper</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.pastry.PastryNodeFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class rice.pastry.<A HREF="../../../../../rice/pastry/PastryNodeFactory.html" title="class in rice.pastry">PastryNodeFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../rice/pastry/PastryNodeFactory.html#getEnvironment()">getEnvironment</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="CONTACT_STATE"><!-- --></A><H3>
CONTACT_STATE</H3>
<PRE>
protected java.lang.String <B>CONTACT_STATE</B></PRE>
<DL>
<DD>Maps to a byte contactState
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="random"><!-- --></A><H3>
random</H3>
<PRE>
protected <A HREF="../../../../../rice/environment/random/RandomSource.html" title="interface in rice.environment.random">RandomSource</A> <B>random</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="RENDEZVOUS_STRATEGY"><!-- --></A><H3>
RENDEZVOUS_STRATEGY</H3>
<PRE>
public static final java.lang.String <B>RENDEZVOUS_STRATEGY</B></PRE>
<DL>
<DD>maps to a RendezvousStrategy<RendezvousSocketNodeHandle>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#rice.pastry.socket.nat.rendezvous.RendezvousSocketPastryNodeFactory.RENDEZVOUS_STRATEGY">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="RENDEZVOUS_TL"><!-- --></A><H3>
RENDEZVOUS_TL</H3>
<PRE>
public static final java.lang.String <B>RENDEZVOUS_TL</B></PRE>
<DL>
<DD>maps to a RendezvousTransportLayerImpl<InetSocketAddress, RendezvousSocketNodeHandle>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#rice.pastry.socket.nat.rendezvous.RendezvousSocketPastryNodeFactory.RENDEZVOUS_TL">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="SIMULATE_FIREWALL"><!-- --></A><H3>
SIMULATE_FIREWALL</H3>
<PRE>
public static final java.lang.String <B>SIMULATE_FIREWALL</B></PRE>
<DL>
<DD>maps to a boolean, if true then simulates a firewall
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#rice.pastry.socket.nat.rendezvous.RendezvousSocketPastryNodeFactory.SIMULATE_FIREWALL">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="RENDEZVOUS_CONTACT_DIRECT_STRATEGY"><!-- --></A><H3>
RENDEZVOUS_CONTACT_DIRECT_STRATEGY</H3>
<PRE>
public static final java.lang.String <B>RENDEZVOUS_CONTACT_DIRECT_STRATEGY</B></PRE>
<DL>
<DD>getVars() maps to a ContactDirectStrategy<RendezvousSocketNodeHandle>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#rice.pastry.socket.nat.rendezvous.RendezvousSocketPastryNodeFactory.RENDEZVOUS_CONTACT_DIRECT_STRATEGY">Constant Field Values</A></DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="RendezvousSocketPastryNodeFactory(rice.pastry.NodeIdFactory, java.net.InetAddress, int, rice.environment.Environment, boolean)"><!-- --></A><H3>
RendezvousSocketPastryNodeFactory</H3>
<PRE>
public <B>RendezvousSocketPastryNodeFactory</B>(<A HREF="../../../../../rice/pastry/NodeIdFactory.html" title="interface in rice.pastry">NodeIdFactory</A>&nbsp;nf,
java.net.InetAddress&nbsp;bindAddress,
int&nbsp;startPort,
<A HREF="../../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;env,
boolean&nbsp;firewalled)
throws java.io.IOException</PRE>
<DL>
<DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DL>
<HR>
<A NAME="RendezvousSocketPastryNodeFactory(rice.pastry.NodeIdFactory, int, rice.environment.Environment, boolean)"><!-- --></A><H3>
RendezvousSocketPastryNodeFactory</H3>
<PRE>
public <B>RendezvousSocketPastryNodeFactory</B>(<A HREF="../../../../../rice/pastry/NodeIdFactory.html" title="interface in rice.pastry">NodeIdFactory</A>&nbsp;nf,
int&nbsp;startPort,
<A HREF="../../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;env,
boolean&nbsp;firewalled)
throws java.io.IOException</PRE>
<DL>
<DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="setContactState(byte)"><!-- --></A><H3>
setContactState</H3>
<PRE>
public void <B>setContactState</B>(byte&nbsp;contactState)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="newNodeSelector(rice.pastry.Id, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, rice.Continuation, java.util.Map, boolean)"><!-- --></A><H3>
newNodeSelector</H3>
<PRE>
protected void <B>newNodeSelector</B>(<A HREF="../../../../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;nodeId,
<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;proxyAddress,
<A HREF="../../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&lt;<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>,java.io.IOException&gt;&nbsp;deliverResultToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;initialVars,
boolean&nbsp;firewalled)</PRE>
<DL>
<DD>Can override the contactState on a per-node basis
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nodeId</CODE> - <DD><CODE>proxyAddress</CODE> - <DD><CODE>deliverResultToMe</CODE> - <DD><CODE>initialVars</CODE> - <DD><CODE>firewalled</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="newNodeSelector(rice.pastry.Id, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, rice.Continuation, java.util.Map, byte)"><!-- --></A><H3>
newNodeSelector</H3>
<PRE>
protected void <B>newNodeSelector</B>(<A HREF="../../../../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;nodeId,
<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;proxyAddress,
<A HREF="../../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&lt;<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>,java.io.IOException&gt;&nbsp;deliverResultToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;initialVars,
byte&nbsp;contactState)</PRE>
<DL>
<DD>Can override the contactState on a per-node basis
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nodeId</CODE> - <DD><CODE>proxyAddress</CODE> - <DD><CODE>deliverResultToMe</CODE> - <DD><CODE>initialVars</CODE> - <DD><CODE>contactState</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="getJoinProtocol(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.ReadyStrategy)"><!-- --></A><H3>
getJoinProtocol</H3>
<PRE>
protected <A HREF="../../../../../rice/pastry/join/JoinProtocol.html" title="interface in rice.pastry.join">JoinProtocol</A> <B>getJoinProtocol</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A>&nbsp;leafSet,
<A HREF="../../../../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A>&nbsp;routeTable,
<A HREF="../../../../../rice/pastry/ReadyStrategy.html" title="interface in rice.pastry">ReadyStrategy</A>&nbsp;lsProtocol)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getJoinProtocol(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.ReadyStrategy)">getJoinProtocol</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html" title="class in rice.pastry.transport">TransportPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getIpServiceTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)"><!-- --></A><H3>
getIpServiceTransportLayer</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt; <B>getIpServiceTransportLayer</B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;&nbsp;wtl,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)
throws java.io.IOException</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getIpServiceTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)">getIpServiceTransportLayer</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getIdentiySerializer(rice.pastry.PastryNode, rice.pastry.socket.SocketNodeHandleFactory)"><!-- --></A><H3>
getIdentiySerializer</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/identity/IdentitySerializer.html" title="interface in org.mpisws.p2p.transport.identity">IdentitySerializer</A>&lt;<A HREF="../../../../../rice/pastry/socket/TransportLayerNodeHandle.html" title="class in rice.pastry.socket">TransportLayerNodeHandle</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;,<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>,<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&gt; <B>getIdentiySerializer</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/socket/SocketNodeHandleFactory.html" title="class in rice.pastry.socket">SocketNodeHandleFactory</A>&nbsp;handleFactory)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getIdentiySerializer(rice.pastry.PastryNode, rice.pastry.socket.SocketNodeHandleFactory)">getIdentiySerializer</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getRendezvousTransportLayer(org.mpisws.p2p.transport.TransportLayer, rice.pastry.PastryNode)"><!-- --></A><H3>
getRendezvousTransportLayer</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt; <B>getRendezvousTransportLayer</B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt;&nbsp;mtl,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNextHopStrategy(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.liveness.Pinger, rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)"><!-- --></A><H3>
getNextHopStrategy</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/manager/simple/NextHopStrategy.html" title="interface in org.mpisws.p2p.transport.sourceroute.manager.simple">NextHopStrategy</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt; <B>getNextHopStrategy</B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;,java.nio.ByteBuffer&gt;&nbsp;ltl,
<A HREF="../../../../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&gt;&nbsp;livenessProvider,
<A HREF="../../../../../org/mpisws/p2p/transport/liveness/Pinger.html" title="interface in org.mpisws.p2p.transport.liveness">Pinger</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/SourceRoute.html" title="class in org.mpisws.p2p.transport.sourceroute">SourceRoute</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&gt;&nbsp;pinger,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;proxyAddress,
<A HREF="../../../../../org/mpisws/p2p/transport/sourceroute/factory/MultiAddressSourceRouteFactory.html" title="class in org.mpisws.p2p.transport.sourceroute.factory">MultiAddressSourceRouteFactory</A>&nbsp;esrFactory)
throws java.io.IOException</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNextHopStrategy(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.liveness.Pinger, rice.pastry.PastryNode, org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, org.mpisws.p2p.transport.sourceroute.factory.MultiAddressSourceRouteFactory)">getNextHopStrategy</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getResponseStrategy(rice.pastry.PastryNode)"><!-- --></A><H3>
getResponseStrategy</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/ResponseStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">ResponseStrategy</A>&lt;java.net.InetSocketAddress&gt; <B>getResponseStrategy</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getContactDirectStrategy(rice.pastry.PastryNode)"><!-- --></A><H3>
getContactDirectStrategy</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/ContactDirectStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">ContactDirectStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt; <B>getContactDirectStrategy</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getPilotFinder(rice.pastry.PastryNode)"><!-- --></A><H3>
getPilotFinder</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/PilotFinder.html" title="interface in org.mpisws.p2p.transport.rendezvous">PilotFinder</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt; <B>getPilotFinder</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="generatePilotStrategy(rice.pastry.PastryNode, org.mpisws.p2p.transport.rendezvous.RendezvousTransportLayerImpl)"><!-- --></A><H3>
generatePilotStrategy</H3>
<PRE>
protected void <B>generatePilotStrategy</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousTransportLayerImpl.html" title="class in org.mpisws.p2p.transport.rendezvous">RendezvousTransportLayerImpl</A>&lt;java.net.InetSocketAddress,<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt;&nbsp;rendezvousLayer)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getContactDeserializer(rice.pastry.PastryNode)"><!-- --></A><H3>
getContactDeserializer</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/ContactDeserializer.html" title="interface in org.mpisws.p2p.transport.rendezvous">ContactDeserializer</A>&lt;java.net.InetSocketAddress,<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt; <B>getContactDeserializer</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getRendezvousGenerator(rice.pastry.PastryNode)"><!-- --></A><H3>
getRendezvousGenerator</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousGenerationStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">RendezvousGenerationStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt; <B>getRendezvousGenerator</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getProximityNeighborSelector(rice.pastry.PastryNode)"><!-- --></A><H3>
getProximityNeighborSelector</H3>
<PRE>
protected <A HREF="../../../../../rice/pastry/standard/ProximityNeighborSelector.html" title="interface in rice.pastry.standard">ProximityNeighborSelector</A> <B>getProximityNeighborSelector</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getProximityNeighborSelector(rice.pastry.PastryNode)">TransportPastryNodeFactory</A></CODE></B></DD>
<DD>Can be overridden.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html#getProximityNeighborSelector(rice.pastry.PastryNode)">getProximityNeighborSelector</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/transport/TransportPastryNodeFactory.html" title="class in rice.pastry.transport">TransportPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="getRendezvousStrategyHelper(rice.pastry.PastryNode)"><!-- --></A><H3>
getRendezvousStrategyHelper</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">RendezvousStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt; <B>getRendezvousStrategyHelper</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD>This is an annoying hack. We can't register the RendezvousApp until registerApps(), but we need it here.
This table temporarily holds the rendezvousApps until they are needed, then it is deleted.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getRendezvousStrategy(rice.pastry.PastryNode)"><!-- --></A><H3>
getRendezvousStrategy</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/rendezvous/RendezvousStrategy.html" title="interface in org.mpisws.p2p.transport.rendezvous">RendezvousStrategy</A>&lt;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A>&gt; <B>getRendezvousStrategy</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="registerApps(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.transport.NodeHandleAdapter, rice.pastry.NodeHandleFactory)"><!-- --></A><H3>
registerApps</H3>
<PRE>
protected void <B>registerApps</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A>&nbsp;leafSet,
<A HREF="../../../../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A>&nbsp;routeTable,
<A HREF="../../../../../rice/pastry/transport/NodeHandleAdapter.html" title="class in rice.pastry.transport">NodeHandleAdapter</A>&nbsp;nha,
<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;handleFactory)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#registerApps(rice.pastry.PastryNode, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.transport.NodeHandleAdapter, rice.pastry.NodeHandleFactory)">registerApps</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNodeHandleFactory(rice.pastry.PastryNode)"><!-- --></A><H3>
getNodeHandleFactory</H3>
<PRE>
public <A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A> <B>getNodeHandleFactory</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getNodeHandleFactory(rice.pastry.PastryNode)">getNodeHandleFactory</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLocalHandle(rice.pastry.PastryNode, rice.pastry.NodeHandleFactory)"><!-- --></A><H3>
getLocalHandle</H3>
<PRE>
public <A HREF="../../../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A> <B>getLocalHandle</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;nhf)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getLocalHandle(rice.pastry.PastryNode, rice.pastry.NodeHandleFactory)">getLocalHandle</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getWireTransportLayer(java.net.InetSocketAddress, rice.pastry.PastryNode)"><!-- --></A><H3>
getWireTransportLayer</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;java.net.InetSocketAddress,java.nio.ByteBuffer&gt; <B>getWireTransportLayer</B>(java.net.InetSocketAddress&nbsp;innermostAddress,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)
throws java.io.IOException</PRE>
<DL>
<DD>For testing, may return a FirewallTL impl for testing.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getWireTransportLayer(java.net.InetSocketAddress, rice.pastry.PastryNode)">getWireTransportLayer</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getPriorityTransportLayer(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.proximity.ProximityProvider, rice.pastry.PastryNode)"><!-- --></A><H3>
getPriorityTransportLayer</H3>
<PRE>
protected <A HREF="../../../../../org/mpisws/p2p/transport/priority/PriorityTransportLayer.html" title="interface in org.mpisws.p2p.transport.priority">PriorityTransportLayer</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt; <B>getPriorityTransportLayer</B>(<A HREF="../../../../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>,java.nio.ByteBuffer&gt;&nbsp;trans,
<A HREF="../../../../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&nbsp;liveness,
<A HREF="../../../../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;&nbsp;prox,
<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getPriorityTransportLayer(org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.proximity.ProximityProvider, rice.pastry.PastryNode)">getPriorityTransportLayer</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getBootstrapper(rice.pastry.PastryNode, rice.pastry.transport.NodeHandleAdapter, rice.pastry.NodeHandleFactory, rice.pastry.standard.ProximityNeighborSelector)"><!-- --></A><H3>
getBootstrapper</H3>
<PRE>
protected <A HREF="../../../../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A> <B>getBootstrapper</B>(<A HREF="../../../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn,
<A HREF="../../../../../rice/pastry/transport/NodeHandleAdapter.html" title="class in rice.pastry.transport">NodeHandleAdapter</A>&nbsp;tl,
<A HREF="../../../../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;handleFactory,
<A HREF="../../../../../rice/pastry/standard/ProximityNeighborSelector.html" title="interface in rice.pastry.standard">ProximityNeighborSelector</A>&nbsp;pns)</PRE>
<DL>
<DD>This code opens a pilot to our bootstrap node before proceeding. This is necessary to allow the liveness
checks to be sent back to me without the bootstrap node remembering the address that I sent the liveness
check on.
When the node goes live, close all of the opened pilots, to not blow out the bootstrap node.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html#getBootstrapper(rice.pastry.PastryNode, rice.pastry.transport.NodeHandleAdapter, rice.pastry.NodeHandleFactory, rice.pastry.standard.ProximityNeighborSelector)">getBootstrapper</A></CODE> in class <CODE><A HREF="../../../../../rice/pastry/socket/SocketPastryNodeFactory.html" title="class in rice.pastry.socket">SocketPastryNodeFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isInternetRoutablePrefix(java.net.InetAddress)"><!-- --></A><H3>
isInternetRoutablePrefix</H3>
<PRE>
protected boolean <B>isInternetRoutablePrefix</B>(java.net.InetAddress&nbsp;address)</PRE>
<DL>
<DD><DL>
<DT><B>Returns:</B><DD>true if ip address matches firewall prefix</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=2 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>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/RendezvousSocketPastryNodeFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../rice/pastry/socket/nat/rendezvous/RendezvousSourceRouteStrategy.html" title="class in rice.pastry.socket.nat.rendezvous"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?rice/pastry/socket/nat/rendezvous/RendezvousSocketPastryNodeFactory.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="RendezvousSocketPastryNodeFactory.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<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:&nbsp;<A HREF="#nested_classes_inherited_from_class_rice.pastry.socket.SocketPastryNodeFactory">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<i>Copyright &#169; 2001-2005 - Rice Pastry.</i>
</BODY>
</HTML>