You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(123) |
Dec
(100) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(12) |
Feb
(80) |
Mar
(35) |
Apr
|
May
|
Jun
(28) |
Jul
(10) |
Aug
(6) |
Sep
|
Oct
|
Nov
(16) |
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(8) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
(6) |
| 2009 |
Jan
(20) |
Feb
(1) |
Mar
(19) |
Apr
(12) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
|
From: Peter P. <pr...@us...> - 2007-02-21 15:40:51
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7508/web/javadoc/edu/harvard/syrah/pyxida/api Added Files: package-summary.html XMLRPC_API.html APIInstanceIF.html ExternalAPIIF.html ExternalAPI.html classes.html tree.html APIManager.html Log Message: Made a new Pyxida release 0.1.4 --- NEW FILE: ExternalAPIIF.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>ExternalAPIIF</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="edu.harvard.syrah.pyxida.api.ExternalAPIIF class"/><meta name="keywords" content="getLocalCoord()"/><meta name="keywords" content="getRemoteCoord()"/><meta name="keywords" content="getRemoteCoords()"/><meta name="keywords" content="getLocalError()"/><meta name="keywords" content="estimateRTT()"/><meta name="keywords" content="createProxyCoord()"/><meta name="keywords" content="getProxyCoord()"/><meta name="keywords" content="renewProxyCoord()"/><meta name="keywords" content="destroyProxyCoord()"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content class" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPI.html">Prev Class</a> | <a href="../../../../../edu/harvard/syrah/pyxida/api/XMLRPC_API.html">Next Class</a></td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="ExternalAPIIF.html" title="Show without frames" target="_top">No Frames</a> </td></tr><tr><td class="navi">Summary: Nested | Field | <a href="#summary-methods">Method</a> | Constr</td><td class="navi">Detail: Nested | Field | <a href="#detail-methods">Method</a> | Constr</td></tr></table><div class="class title outer"><h3 class="class title-package">edu.harvard.syrah.pyxida.api</h3><h1 class="class title-class">Interface ExternalAPIIF</h1></div><div class="class synopsis outer"><div class="class synopsis declaration"><code>public interface <b class="class synopsis name">ExternalAPIIF</b></code></div></div><hr/><div class="class description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><a name="summary-methods" id="summary-methods"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Method Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#createProxyCoord(String,int,CB1<String>)">createProxyCoord</a>(String remoteNode, int lease, CB1<String> cbResult)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#destroyProxyCoord(String,CB1<String>)">destroyProxyCoord</a>(String remoteNode, CB1<String> cbResult)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#estimateRTT(String,String,CB1<Double>)">estimateRTT</a>(String nodeA, String nodeB, CB1<Double> cbLatency)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLocalCoord(CB1<Vector<Double>>)">getLocalCoord</a>(CB1<Vector<Double>> cbLocalCoord)</code></dt><dd class="description"> Returns a coordinate of either a substrate node or a local proxy node </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLocalError(CB1<Double>)">getLocalError</a>(CB1<Double> cbLocalError)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getProxyCoord(String,CB2<Vector<Double>,String>)">getProxyCoord</a>(String remoteNode, CB2<Vector<Double> , String> cbProxyCoord)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getRemoteCoord(String,CB1<Map<String,Object>>)">getRemoteCoord</a>(String remoteNode, CB1<Map<String , Object>> cbRemoteCoord)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getRemoteCoords(Hashtable<String,Object>,CB1<Map<String,Object>>)">getRemoteCoords</a>(Hashtable<String , Object> remoteNodes, CB1<Map<String , Object>> cbRemoteCoords)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#renewProxyCoord(String,int,CB1<String>)">renewProxyCoord</a>(String remoteNode, int lease, CB1<String> cbResult)</code></dt></dl></td></tr></table></dd></dl><a name="detail-methods" id="detail-methods"/><h2 class="section header">Method Details</h2><div class="section"><a name="createProxyCoord(String,int,CB1<String>)" id="createProxyCoord(String,int,CB1<String>)"/><div class="member detail outer"><h3 class="member detail name">createProxyCoord</h3><pre class="member detail synopsis">public void createProxyCoord(String remoteNode, int lease, CB1<String> cbResult)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="destroyProxyCoord(String,CB1<String>)" id="destroyProxyCoord(String,CB1<String>)"/><div class="member detail outer"><h3 class="member detail name">destroyProxyCoord</h3><pre class="member detail synopsis">public void destroyProxyCoord(String remoteNode, CB1<String> cbResult)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="estimateRTT(String,String,CB1<Double>)" id="estimateRTT(String,String,CB1<Double>)"/><div class="member detail outer"><h3 class="member detail name">estimateRTT</h3><pre class="member detail synopsis">public void estimateRTT(String nodeA, String nodeB, CB1<Double> cbLatency)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLocalCoord(CB1<Vector<Double>>)" id="getLocalCoord(CB1<Vector<Double>>)"/><div class="member detail outer"><h3 class="member detail name">getLocalCoord</h3><pre class="member detail synopsis">public void getLocalCoord(CB1<Vector<Double>> cbLocalCoord)</pre><blockquote class="member detail name"><div class="member detail description"> Returns a coordinate of either a substrate node or a local proxy node </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLocalError(CB1<Double>)" id="getLocalError(CB1<Double>)"/><div class="member detail outer"><h3 class="member detail name">getLocalError</h3><pre class="member detail synopsis">public void getLocalError(CB1<Double> cbLocalError)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getProxyCoord(String,CB2<Vector<Double>,String>)" id="getProxyCoord(String,CB2<Vector<Double>,String>)"/><div class="member detail outer"><h3 class="member detail name">getProxyCoord</h3><pre class="member detail synopsis">public void getProxyCoord(String remoteNode, CB2<Vector<Double> , String> cbProxyCoord)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getRemoteCoord(String,CB1<Map<String,Object>>)" id="getRemoteCoord(String,CB1<Map<String,Object>>)"/><div class="member detail outer"><h3 class="member detail name">getRemoteCoord</h3><pre class="member detail synopsis">public void getRemoteCoord(String remoteNode, CB1<Map<String , Object>> cbRemoteCoord)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getRemoteCoords(Hashtable<String,Object>,CB1<Map<String,Object>>)" id="getRemoteCoords(Hashtable<String,Object>,CB1<Map<String,Object>>)"/><div class="member detail outer"><h3 class="member detail name">getRemoteCoords</h3><pre class="member detail synopsis">public void getRemoteCoords(Hashtable<String , Object> remoteNodes, CB1<Map<String , Object>> cbRemoteCoords)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="renewProxyCoord(String,int,CB1<String>)" id="renewProxyCoord(String,int,CB1<String>)"/><div class="member detail outer"><h3 class="member detail name">renewProxyCoord</h3><pre class="member detail synopsis">public void renewProxyCoord(String remoteNode, int lease, CB1<String> cbResult)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> --- NEW FILE: tree.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>edu.harvard.syrah.pyxida.api Hierarchy</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content packagetree" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item active">Tree</span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi"></td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="tree.html" title="Show without frames" target="_top">No Frames</a> </td></tr></table><h1 class="package tree title">Hierarchy for Package edu.harvard.syrah.pyxida.api</h1><h2 class="package tree section title">Class Hierarchy</h2><ul class="tree"><li class="node"><div>java.lang.Object</div></li><li class="level"><ul><li class="node"><div>edu.harvard.syrah.pyxida.api.<b class="tree link"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIManager.html" title="Class in edu.harvard.syrah.pyxida.api">APIManager</a></b></div></li><li class="node"><div>edu.harvard.syrah.pyxida.api.<b class="tree link"><a href="../../../../../edu/harvard/syrah/pyxida/api/XMLRPC_API.html" title="Class in edu.harvard.syrah.pyxida.api">XMLRPC_API</a></b> (implements APIInstanceIF)</div></li></ul></li></ul><h2 class="package tree section title">Interface Hierarchy</h2><ul class="tree"><li class="node"><div>edu.harvard.syrah.pyxida.api.<b class="tree link"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIInstanceIF.html" title="Interface in edu.harvard.syrah.pyxida.api">APIInstanceIF</a></b></div></li><li class="node"><div>edu.harvard.syrah.pyxida.api.<b class="tree link"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPIIF.html" title="Interface in edu.harvard.syrah.pyxida.api">ExternalAPIIF</a></b></div></li></ul><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item active">Tree</span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> --- NEW FILE: APIManager.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>APIManager</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="edu.harvard.syrah.pyxida.api.APIManager class"/><meta name="keywords" content="init()"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content class" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIInstanceIF.html">Prev Class</a> | <a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPI.html">Next Class</a></td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="APIManager.html" title="Show without frames" target="_top">No Frames</a> </td></tr><tr><td class="navi">Summary: Nested | Field | <a href="#summary-methods">Method</a> | <a href="#summary-constructors">Constr</a></td><td class="navi">Detail: Nested | Field | <a href="#detail-methods">Method</a> | <a href="#detail-constructors">Constr</a></td></tr></table><div class="class title outer"><h3 class="class title-package">edu.harvard.syrah.pyxida.api</h3><h1 class="class title-class">Class APIManager</h1></div><div class="class inheritance-tree"><ul class="inheritance 0"><li class="inheritance 0"><code>java.lang.Object</code></li><li><ul class="inheritance 1"><li class="inheritance 1"><code>edu.harvard.syrah.pyxida.api.APIManager</code></li><li></li></ul></li></ul></div><hr/><div class="class synopsis outer"><div class="class synopsis declaration"><code>public class <b class="class synopsis name">APIManager</b></code></div><div class="class synopsis superclass"><code>extends java.lang.Object</code></div></div><hr/><div class="class description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><a name="summary-constructors" id="summary-constructors"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Constructor Summary</h2></td></tr><tr><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#APIManager(NCManager)">APIManager</a>(NCManager ncManager)</code></dt></dl></td></tr></table></dd></dl><a name="summary-methods" id="summary-methods"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Method Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#init(CB0)">init</a>(CB0 cbDone)</code></dt></dl></td></tr></table></dd></dl><a name="detail-constructors" id="detail-constructors"/><h2 class="section header">Constructor Details</h2><div class="section"><a name="APIManager(NCManager)" id="APIManager(NCManager)"/><div class="member detail outer"><h3 class="member detail name">APIManager</h3><pre class="member detail synopsis">public APIManager(NCManager ncManager)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><a name="detail-methods" id="detail-methods"/><h2 class="section header">Method Details</h2><div class="section"><a name="init(CB0)" id="init(CB0)"/><div class="member detail outer"><h3 class="member detail name">init</h3><pre class="member detail synopsis">public void init(CB0 cbDone)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> --- NEW FILE: ExternalAPI.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>ExternalAPI</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="edu.harvard.syrah.pyxida.api.ExternalAPI class"/><meta name="keywords" content="createProxyCoord()"/><meta name="keywords" content="getProxyCoord()"/><meta name="keywords" content="destroyProxyCoord()"/><meta name="keywords" content="estimateRTT()"/><meta name="keywords" content="getLocalCoord()"/><meta name="keywords" content="getRemoteCoords()"/><meta name="keywords" content="getRemoteCoord()"/><meta name="keywords" content="getLocalError()"/><meta name="keywords" content="renewProxyCoord()"/><meta name="keywords" content="void cb()"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content class" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIManager.html">Prev Class</a> | <a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPIIF.html">Next Class</a></td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="ExternalAPI.html" title="Show without frames" target="_top">No Frames</a> </td></tr><tr><td class="navi">Summary: Nested | Field | <a href="#summary-methods">Method</a> | <a href="#summary-constructors">Constr</a></td><td class="navi">Detail: Nested | Field | <a href="#detail-methods">Method</a> | <a href="#detail-constructors">Constr</a></td></tr></table><div class="class title outer"><h3 class="class title-package">edu.harvard.syrah.pyxida.api</h3><h1 class="class title-class">Class ExternalAPI</h1></div><div class="class inheritance-tree"><ul class="inheritance 0"><li class="inheritance 0"><code>HTTPCallbackHandler</code></li><li><ul class="inheritance 1"><li class="inheritance 1"><code>edu.harvard.syrah.pyxida.api.ExternalAPI</code></li><li></li></ul></li></ul></div><dl class="class knownimplementing"><dt class="header"><b>Implemented Interfaces:</b></dt><dd class="item">ExternalAPIIF</dd></dl><hr/><div class="class synopsis outer"><div class="class synopsis declaration"><code>public class <b class="class synopsis name">ExternalAPI</b></code></div><div class="class synopsis superclass"><code>extends HTTPCallbackHandler</code></div><div class="class synopsis implements"><code>implements ExternalAPIIF</code></div></div><hr/><div class="class description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><a name="summary-constructors" id="summary-constructors"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Constructor Summary</h2></td></tr><tr><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#ExternalAPI(NCManager)">ExternalAPI</a>(NCManager ncManager)</code></dt></dl></td></tr></table></dd></dl><a name="summary-methods" id="summary-methods"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Method Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#createProxyCoord(String,int,CB1<String>)">createProxyCoord</a>(String remoteNodeStr, int lease, CB1<String> cbResult)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#destroyProxyCoord(String,CB1<String>)">destroyProxyCoord</a>(String remoteNodeStr, CB1<String> cbResult)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#estimateRTT(String,String,CB1<Double>)">estimateRTT</a>(String nodeA, String nodeB, CB1<Double> cbDistance)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLocalCoord(CB1<Vector<Double>>)">getLocalCoord</a>(CB1<Vector<Double>> cbLocalCoord)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLocalError(CB1<Double>)">getLocalError</a>(CB1<Double> cbLocalError)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getProxyCoord(String,final,String>)">getProxyCoord</a>(String remoteNodeStr, final CB2<Vector<Double>, String> cbProxyCoord)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getRemoteCoord(String,final,Object>>)">getRemoteCoord</a>(String remoteNodeStr, final CB1<Map<String, Object>> cbRemoteCoord)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getRemoteCoords(final,Object>,final,Object>>)">getRemoteCoords</a>(final Hashtable<String, Object> remoteNodesMap, final CB1<Map<String, Object>> cbRemoteCoords)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#renewProxyCoord(String,int,CB1<String>)">renewProxyCoord</a>(String remoteNodeStr, int lease, CB1<String> cbResult)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected @Override</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#void cb(CBResult,AddressIF,String,String,CB2<String,>[])">void cb</a>(CBResult result, AddressIF remoteAddr, String path, String requestData, CB2<String , >[] cbResponse)</code></dt></dl></td></tr></table></dd></dl><a name="detail-constructors" id="detail-constructors"/><h2 class="section header">Constructor Details</h2><div class="section"><a name="ExternalAPI(NCManager)" id="ExternalAPI(NCManager)"/><div class="member detail outer"><h3 class="member detail name">ExternalAPI</h3><pre class="member detail synopsis">public ExternalAPI(NCManager ncManager)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><a name="detail-methods" id="detail-methods"/><h2 class="section header">Method Details</h2><div class="section"><a name="createProxyCoord(String,int,CB1<String>)" id="createProxyCoord(String,int,CB1<String>)"/><div class="member detail outer"><h3 class="member detail name">createProxyCoord</h3><pre class="member detail synopsis">public void createProxyCoord(String remoteNodeStr, int lease, CB1<String> cbResult)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="destroyProxyCoord(String,CB1<String>)" id="destroyProxyCoord(String,CB1<String>)"/><div class="member detail outer"><h3 class="member detail name">destroyProxyCoord</h3><pre class="member detail synopsis">public void destroyProxyCoord(String remoteNodeStr, CB1<String> cbResult)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="estimateRTT(String,String,CB1<Double>)" id="estimateRTT(String,String,CB1<Double>)"/><div class="member detail outer"><h3 class="member detail name">estimateRTT</h3><pre class="member detail synopsis">public void estimateRTT(String nodeA, String nodeB, CB1<Double> cbDistance)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLocalCoord(CB1<Vector<Double>>)" id="getLocalCoord(CB1<Vector<Double>>)"/><div class="member detail outer"><h3 class="member detail name">getLocalCoord</h3><pre class="member detail synopsis">public void getLocalCoord(CB1<Vector<Double>> cbLocalCoord)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLocalError(CB1<Double>)" id="getLocalError(CB1<Double>)"/><div class="member detail outer"><h3 class="member detail name">getLocalError</h3><pre class="member detail synopsis">public void getLocalError(CB1<Double> cbLocalError)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getProxyCoord(String,final,String>)" id="getProxyCoord(String,final,String>)"/><div class="member detail outer"><h3 class="member detail name">getProxyCoord</h3><pre class="member detail synopsis">public void getProxyCoord(String remoteNodeStr, final CB2<Vector<Double>, String> cbProxyCoord)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getRemoteCoord(String,final,Object>>)" id="getRemoteCoord(String,final,Object>>)"/><div class="member detail outer"><h3 class="member detail name">getRemoteCoord</h3><pre class="member detail synopsis">public void getRemoteCoord(String remoteNodeStr, final CB1<Map<String, Object>> cbRemoteCoord)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getRemoteCoords(final,Object>,final,Object>>)" id="getRemoteCoords(final,Object>,final,Object>>)"/><div class="member detail outer"><h3 class="member detail name">getRemoteCoords</h3><pre class="member detail synopsis">public void getRemoteCoords(final Hashtable<String, Object> remoteNodesMap, final CB1<Map<String, Object>> cbRemoteCoords)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="renewProxyCoord(String,int,CB1<String>)" id="renewProxyCoord(String,int,CB1<String>)"/><div class="member detail outer"><h3 class="member detail name">renewProxyCoord</h3><pre class="member detail synopsis">public void renewProxyCoord(String remoteNodeStr, int lease, CB1<String> cbResult)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="void cb(CBResult,AddressIF,String,String,CB2<String,>[])" id="void cb(CBResult,AddressIF,String,String,CB2<String,>[])"/><div class="member detail outer"><h3 class="member detail name">void cb</h3><pre class="member detail synopsis">protected @Override void cb(CBResult result, AddressIF remoteAddr, String path, String requestData, CB2<String , >[] cbResponse)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> --- NEW FILE: classes.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>edu.harvard.syrah.pyxida.api Class Menu</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="menu classes" onload="if(parent.contentPageLoaded)parent.contentPageLoaded()"><h4 class="classes menu-title"><a href="package-summary.html" title="" target="content">edu.harvard.syrah.pyxida.api</a></h4><div class="classes menu-list"><p class="classes menu-subtitle">Interfaces</p><i class="classes menu-entry interface"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIInstanceIF.html" title="edu.harvard.syrah.pyxida.api.APIInstanceIF" target="content">APIInstanceIF</a></i><br/><i class="classes menu-entry interface"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPIIF.html" title="edu.harvard.syrah.pyxida.api.ExternalAPIIF" target="content">ExternalAPIIF</a></i><br/><p class="classes menu-subtitle">Classes</p><span class="classes menu-entry class"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIManager.html" title="edu.harvard.syrah.pyxida.api.APIManager" target="content">APIManager</a></span><br/><span class="classes menu-entry class"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPI.html" title="edu.harvard.syrah.pyxida.api.ExternalAPI" target="content">ExternalAPI</a></span><br/><span class="classes menu-entry class"><a href="../../../../../edu/harvard/syrah/pyxida/api/XMLRPC_API.html" title="edu.harvard.syrah.pyxida.api.XMLRPC_API" target="content">XMLRPC_API</a></span><br/></div></body></html> --- NEW FILE: APIInstanceIF.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>APIInstanceIF</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="edu.harvard.syrah.pyxida.api.APIInstanceIF class"/><meta name="keywords" content="init()"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content class" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi">Prev Class | <a href="../../../../../edu/harvard/syrah/pyxida/api/APIManager.html">Next Class</a></td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="APIInstanceIF.html" title="Show without frames" target="_top">No Frames</a> </td></tr><tr><td class="navi">Summary: Nested | Field | <a href="#summary-methods">Method</a> | Constr</td><td class="navi">Detail: Nested | Field | <a href="#detail-methods">Method</a> | Constr</td></tr></table><div class="class title outer"><h3 class="class title-package">edu.harvard.syrah.pyxida.api</h3><h1 class="class title-class">Interface APIInstanceIF</h1></div><div class="class synopsis outer"><div class="class synopsis declaration"><code>public interface <b class="class synopsis name">APIInstanceIF</b></code></div></div><hr/><div class="class description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><a name="summary-methods" id="summary-methods"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Method Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#init(CB0)">init</a>(CB0 cbDone)</code></dt></dl></td></tr></table></dd></dl><a name="detail-methods" id="detail-methods"/><h2 class="section header">Method Details</h2><div class="section"><a name="init(CB0)" id="init(CB0)"/><div class="member detail outer"><h3 class="member detail name">init</h3><pre class="member detail synopsis">public void init(CB0 cbDone)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> --- NEW FILE: package-summary.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>edu.harvard.syrah.pyxida.api</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="edu.harvard.syrah.pyxida.api packages"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content package" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item active">Package</span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi"><a href="../../../../../edu/harvard/syrah/pyxida/package-summary.html">Prev Package</a> | <a href="../../../../../edu/harvard/syrah/pyxida/log/package-summary.html">Next Package</a></td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="package-summary.html" title="Show without frames" target="_top">No Frames</a> </td></tr></table><h1 class="package title">Package edu.harvard.syrah.pyxida.api</h1><div class="package description top"></div><dl class="table container"><dd><table class="package summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Interface Summary</h2></td></tr><tr><td class="left"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIInstanceIF.html" title="Interface in edu.harvard.syrah.pyxida.api">APIInstanceIF</a></td><td class="right"></td></tr><tr><td class="left"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPIIF.html" title="Interface in edu.harvard.syrah.pyxida.api">ExternalAPIIF</a></td><td class="right"></td></tr></table></dd></dl> <dl class="table container"><dd><table class="package summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Class Summary</h2></td></tr><tr><td class="left"><a href="../../../../../edu/harvard/syrah/pyxida/api/APIManager.html" title="Class in edu.harvard.syrah.pyxida.api">APIManager</a></td><td class="right"></td></tr><tr><td class="left"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPI.html" title="Class in edu.harvard.syrah.pyxida.api">ExternalAPI</a></td><td class="right"></td></tr><tr><td class="left"><a href="../../../../../edu/harvard/syrah/pyxida/api/XMLRPC_API.html" title="Class in edu.harvard.syrah.pyxida.api">XMLRPC_API</a></td><td class="right"></td></tr></table></dd></dl> <a name="description" id="description"/><div class="package description full"></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item active">Package</span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> --- NEW FILE: XMLRPC_API.html --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../../../../../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>XMLRPC_API</title><script src="../../../../../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="edu.harvard.syrah.pyxida.api.XMLRPC_API class"/><meta name="keywords" content="init()"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../../../../../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content class" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr><tr><td class="navi"><a href="../../../../../edu/harvard/syrah/pyxida/api/ExternalAPIIF.html">Prev Class</a> | Next Class</td><td class="navi"><a href="../../../../../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="XMLRPC_API.html" title="Show without frames" target="_top">No Frames</a> </td></tr><tr><td class="navi">Summary: Nested | Field | <a href="#summary-methods">Method</a> | Constr</td><td class="navi">Detail: Nested | Field | <a href="#detail-methods">Method</a> | Constr</td></tr></table><div class="class title outer"><h3 class="class title-package">edu.harvard.syrah.pyxida.api</h3><h1 class="class title-class">Class XMLRPC_API</h1></div><div class="class inheritance-tree"><ul class="inheritance 0"><li class="inheritance 0"><code>java.lang.Object</code></li><li><ul class="inheritance 1"><li class="inheritance 1"><code>edu.harvard.syrah.pyxida.api.XMLRPC_API</code></li><li></li></ul></li></ul></div><dl class="class knownimplementing"><dt class="header"><b>Implemented Interfaces:</b></dt><dd class="item">APIInstanceIF</dd></dl><hr/><div class="class synopsis outer"><div class="class synopsis declaration"><code>public class <b class="class synopsis name">XMLRPC_API</b></code></div><div class="class synopsis superclass"><code>extends java.lang.Object</code></div><div class="class synopsis implements"><code>implements APIInstanceIF</code></div></div><hr/><div class="class description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><a name="summary-methods" id="summary-methods"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Method Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#init(CB0)">init</a>(CB0 cbDone)</code></dt></dl></td></tr></table></dd></dl><a name="detail-methods" id="detail-methods"/><h2 class="section header">Method Details</h2><div class="section"><a name="init(CB0)" id="init(CB0)"/><div class="member detail outer"><h3 class="member detail name">init</h3><pre class="member detail synopsis">public void init(CB0 cbDone)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../../../../../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../../../../../alphaindex.html">Index</a></span> <span class="navbar item enabled"><a href="../../../../../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../../../../../about.html">About</a></span></div></td></tr></table></body></html> |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:40:25
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/nc/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7463/web/javadoc/edu/harvard/syrah/pyxida/nc/lib Log Message: Directory /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/nc/lib added to the repository |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:40:25
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/log In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7463/web/javadoc/edu/harvard/syrah/pyxida/log Log Message: Directory /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/log added to the repository |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:40:24
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7463/web/javadoc/edu/harvard/syrah/pyxida/api Log Message: Directory /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/api added to the repository |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:40:22
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/ping In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7463/web/javadoc/edu/harvard/syrah/pyxida/ping Log Message: Directory /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/ping added to the repository |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:35:58
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5542/src/edu/harvard/syrah/pyxida/nc/lib Modified Files: NCClient.java Log Message: Changed app-level stability setting Index: NCClient.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/lib/NCClient.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** NCClient.java 21 Feb 2007 14:19:19 -0000 1.6 --- NCClient.java 21 Feb 2007 15:35:56 -0000 1.7 *************** *** 102,106 **** // Lowering this value leads to more frequent updates // Should be less than 0.5 ! public static final double APP_UPDATE_THRESHOLD = 0.1; // completely ignore any RTT larger than ten seconds --- 102,106 ---- // Lowering this value leads to more frequent updates // Should be less than 0.5 ! public static final double APP_UPDATE_THRESHOLD = 0.5; // completely ignore any RTT larger than ten seconds |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:35:36
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5519/bin Modified Files: query.pl Log Message: Minor fixes to query tool Index: query.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/query.pl,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** query.pl 6 Feb 2007 17:54:03 -0000 1.13 --- query.pl 21 Feb 2007 15:35:31 -0000 1.14 *************** *** 41,49 **** } ! if ($url =~ /^http:\/\/[\w+\.]+$/) { $url .= ":$API_PORT/xmlrpc" } ! if ($url !~ /^http:\/\/[\w+\.]+:\d+\/xmlrpc$/) { die ("word: $url\n$usage\n"); } --- 41,53 ---- } ! if ($url =~ /^http:\/\/[\w+\.-]+$/) { $url .= ":$API_PORT/xmlrpc" } ! if ($url =~ /^http:\/\/[\w+\.-]+:\d+$/) { ! $url .= "/xmlrpc"; ! } ! ! if ($url !~ /^http:\/\/[\w+\.-]+:\d+\/xmlrpc$/) { die ("word: $url\n$usage\n"); } |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:35:26
|
Update of /cvsroot/pyxida/Pyxida/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5478/web Modified Files: index.html Log Message: More updates to webpage Index: index.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/index.html,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** index.html 21 Feb 2007 15:15:22 -0000 1.18 --- index.html 21 Feb 2007 15:35:14 -0000 1.19 *************** *** 24,37 **** <table> <tr> ! <td height="500" width="30"> </td> <td><a href="#about">About</a><br/> <a href="#people">People</a><br/> <a href="#download">Download</a><br/> <a href="#doc">Documentation</a><br/> ! <a href="javadoc/index.html">JavaDoc</a><br/> <a href="#logs">Logs</a><br/> <a href="http://www.eecs.harvard.edu/~syrah/nc">Research</a><br/> ! <a href="http://sourceforge.net/projects/pyxida">SF Project Page</a><br/> <a href="mailto:pyx...@li...">Contact</a><br/> <!-- we need a proper email alias here --> --- 24,44 ---- <table> <tr> ! <td height="640" width="30"> </td> <td><a href="#about">About</a><br/> + <font size="-1"><a href="http://sourceforge.net/projects/pyxida">SF Project Page</a></font><br/> + <br /> <a href="#people">People</a><br/> + <br /> <a href="#download">Download</a><br/> + <br /> <a href="#doc">Documentation</a><br/> ! <font size="-1"><a href="javadoc/index.html">JavaDoc</a></font><br/> ! <br /> <a href="#logs">Logs</a><br/> + <font size="-1"><a href="http://hourglass.eecs.harvard.edu/video">Videos</a></font><br/> + <br /> <a href="http://www.eecs.harvard.edu/~syrah/nc">Research</a><br/> ! <br /> <a href="mailto:pyx...@li...">Contact</a><br/> <!-- we need a proper email alias here --> *************** *** 43,49 **** </tr> - <tr> - <td height="60" > </td> - </tr> <tr> --- 50,53 ---- *************** *** 88,92 **** <table width="100%" bgcolor="#9EB0FF" valign="top"> <tr> ! <td><a name="people"><font color="#FFFFFF"><b>Pyxida Users</b></font></a></td> </tr> --- 92,96 ---- <table width="100%" bgcolor="#9EB0FF" valign="top"> <tr> ! <td><a name="users"><font color="#FFFFFF"><b>Pyxida Users</b></font></a></td> </tr> *************** *** 147,151 **** <ul> ! <li><a href="dist/pyxida-0.1.2.jar">pyxida-0.1.2.jar</a></li> </ul> --- 151,155 ---- <ul> ! <li><a href="dist/pyxida-0.1.4.jar">pyxida-0.1.4.jar</a></li> </ul> *************** *** 153,157 **** <ul> ! <li><a href="dist/pyxida-0.1.2.tar.gz">pyxida-0.1.2.tar.gz</a></li> </ul> --- 157,161 ---- <ul> ! <li><a href="dist/pyxida-0.1.4.tar.gz">pyxida-0.1.4.tar.gz</a></li> </ul> *************** *** 270,277 **** <tr> <td><a name="logs"><font color= ! "#FFFFFF"><b>Logging and Log Files</b></font></a></td> </tr> </table> <p> Logging levels for particular classes and subtrees can be set --- 274,289 ---- <tr> <td><a name="logs"><font color= ! "#FFFFFF"><b>Videos and Log Files</b></font></a></td> </tr> </table> + <h4>Videos</h4> + + <p>You can find a directory with + <a href="http://hourglass.eecs.harvard.edu/video">videos</a> that + show the dynamic behaviour of network coordinates on PlanetLab.</a + + <h4>Log Files</h4> + <p> Logging levels for particular classes and subtrees can be set |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:15:27
|
Update of /cvsroot/pyxida/Pyxida/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30333/web Modified Files: index.html Log Message: more updates Index: index.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/index.html,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** index.html 21 Feb 2007 15:03:31 -0000 1.17 --- index.html 21 Feb 2007 15:15:22 -0000 1.18 *************** *** 218,229 **** <p> Example of querying a node for its own coordinate:<BR> ! query: <code>query.pl -l http://righthand.eecs.harvard.edu:55501</code><BR> ! response: <code>[493.425 21.099 508.916 -200.796 h0.582]</code> </code> <p> Example of estimating inter-node latency:<BR> ! query: <code>query.pl -a planetlab01.cs.washington.edu:55504 -b planetlab1.csail.mit.edu:55504 http://righthand.eecs.harvard.edu:55501</code><BR> ! response: <code>178.520</code> </code> --- 218,229 ---- <p> Example of querying a node for its own coordinate:<BR> ! <i>query</i>: <code>query.pl -l http://planetlab-1.imperial.ac.uk</code><BR> ! <i>response</i>: <code>[-469.250 148.827 -718.443 -112.174 h0.357]</code> </code> <p> Example of estimating inter-node latency:<BR> ! <i>query</i>: <code>query.pl -a planetlab01.cs.washington.edu -b planetlab1.csail.mit.edu http:planetlab-1.imperial.ac.uk//</code><BR> ! <i>response</i>: <code>357.550</code> </code> |
|
From: Peter P. <pr...@us...> - 2007-02-21 15:03:36
|
Update of /cvsroot/pyxida/Pyxida/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25776/web Modified Files: index.html Log Message: Started updating webpage Index: index.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/index.html,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** index.html 6 Feb 2007 17:54:03 -0000 1.16 --- index.html 21 Feb 2007 15:03:31 -0000 1.17 *************** *** 28,38 **** <td><a href="#about">About</a><br/> <a href="#people">People</a><br/> - <a href="#doc">Documentation</a><br/> - <a href="javadoc/index.html">JavaDoc</a><br/> <a href="#download">Download</a><br/> <a href="http://www.eecs.harvard.edu/~syrah/nc">Research</a><br/> ! <a href="http://sourceforge.net/projects/pyxida">SF ! project</a><br/> ! <font size="-1">(for bugs, etc.)</font><br/> <a href="mailto:pyx...@li...">Contact</a><br/> <!-- we need a proper email alias here --> --- 28,37 ---- <td><a href="#about">About</a><br/> <a href="#people">People</a><br/> <a href="#download">Download</a><br/> + <a href="#doc">Documentation</a><br/> + <a href="javadoc/index.html">JavaDoc</a><br/> + <a href="#logs">Logs</a><br/> <a href="http://www.eecs.harvard.edu/~syrah/nc">Research</a><br/> ! <a href="http://sourceforge.net/projects/pyxida">SF Project Page</a><br/> <a href="mailto:pyx...@li...">Contact</a><br/> <!-- we need a proper email alias here --> *************** *** 66,71 **** <td> ! <h3>Pyxida: An Open Source Network Coordinate Library and ! Application</h3><a name="about"></a> <p>We have created an open source library and application --- 65,70 ---- <td> ! <h2>Pyxida: An Open Source Network Coordinate Library and ! Application</h2><a name="about"></a> <p>We have created an open source library and application *************** *** 141,144 **** --- 140,161 ---- <table width="100%" bgcolor="#9EB0FF" valign="top"> <tr> + <td><a name="download"><font color="#FFFFFF"><b>Download</b></font></a></td> + </tr> + </table> + + <p><b>Library Version</b></p> + + <ul> + <li><a href="dist/pyxida-0.1.2.jar">pyxida-0.1.2.jar</a></li> + </ul> + + <p><b>Stand-alone Application</b></p> + + <ul> + <li><a href="dist/pyxida-0.1.2.tar.gz">pyxida-0.1.2.tar.gz</a></li> + </ul> + + <table width="100%" bgcolor="#9EB0FF" valign="top"> + <tr> <td><a name="doc"><font color= "#FFFFFF"><b>Documentation</b></font></a></td> *************** *** 167,174 **** to help them incorporate the library into their application. ! <p><b>For users of the PlanetLab Service:</b></p> Pyxida users who just want to query sets of network coordinates from an existing system can access our ! long-running PlanetLab Service using XML/RPC. While you can build your own XML/RPC tool, <a href="bin/query.pl">we provide one in perl for you to --- 184,202 ---- to help them incorporate the library into their application. ! <h4><a href="http://www.planet-lab.org">PlanetLab</a> Service</h4> ! Pyxida users who just want to query sets of network coordinates from an existing system can access our ! long-running PlanetLab Service using a web or XML/RPC interface. ! ! <h5>Web Interface</h5> ! ! You can obtain the current coordinate of a PlanetLab nodes by ! pointing your browser to the web interface port, e.g. ! <a href="http://planetlab-1.imperial.ac.uk:55501/">http://planetlab-1.imperial.ac.uk:55501/</a>. ! ! <h5>XML/RPC Interface</h5> ! ! While you can build your own XML/RPC tool, <a href="bin/query.pl">we provide one in perl for you to *************** *** 203,207 **** service relatively soon. ! <p><b>For users of the standalone version:</b></p> <ul> <li><a href="#download">Download</a> and untar the tarball.</li> --- 231,235 ---- service relatively soon. ! <h4>Standalone Version</h4> <ul> <li><a href="#download">Download</a> and untar the tarball.</li> *************** *** 224,228 **** </ul> ! <p><b>For users of the library:</b> <ul> <li><a href="#download">Download libpyxida.jar</a></li> --- 252,257 ---- </ul> ! <h4>Library Version</h4> ! <ul> <li><a href="#download">Download libpyxida.jar</a></li> *************** *** 238,251 **** </ul> ! <p><b>Coming soon:</b> ! <ul> ! <li>web query and status tool</li> ! <li>proxy coordinates (targeted for v0.2): ! create a coordinate for a non-overlay node.</li> ! <li>add application-level coordinates for improved stability ! <li>version of the library written in Python. ! </ul> ! ! <p><b>Logging and Log Files</b> <p> --- 267,276 ---- </ul> ! <table width="100%" bgcolor="#9EB0FF" valign="top"> ! <tr> ! <td><a name="logs"><font color= ! "#FFFFFF"><b>Logging and Log Files</b></font></a></td> ! </tr> ! </table> <p> *************** *** 255,259 **** ! Setting this to DEBUG will produce a lot of output. We suggest INFO, which will produce a periodic summary. --- 280,284 ---- ! Setting this to DEBUG will produce a lot of output. We suggest INFO, which will produce a periodic summary. *************** *** 300,304 **** <tr> <td><a name="doc"><font color= ! "#FFFFFF"><b>Bugs</b></font></a></td> </tr> </table> --- 325,329 ---- <tr> <td><a name="doc"><font color= ! "#FFFFFF"><b>Bugs and Feature Requests</b></font></a></td> </tr> </table> *************** *** 315,337 **** <li>ICMP crashes.</li> </ul> - - <table width="100%" bgcolor="#9EB0FF" valign="top"> - <tr> - <td><a name="download"><font color="#FFFFFF"><b>Download</b></font></a></td> - </tr> - </table> - - <p><b>Library</b></p> - - <ul> - <li><a href="dist/pyxida-0.1.2.jar">pyxida-0.1.2.jar</a></li> - </ul> - - <p><b>Application</b></p> - - <ul> - <li><a href="dist/pyxida-0.1.2.tar.gz">pyxida-0.1.2.tar.gz</a></li> - </ul> </td> </tr> --- 340,353 ---- <li>ICMP crashes.</li> </ul> + + <p><b>Coming soon:</b> + <ul> + <li>web query and status tool</li> + <li>proxy coordinates (targeted for v0.2): + create a coordinate for a non-overlay node.</li> + <li>add application-level coordinates for improved stability + <li>version of the library written in Python. + </ul> </td> </tr> |
|
From: Peter P. <pr...@us...> - 2007-02-21 14:19:20
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8780/src/edu/harvard/syrah/pyxida/nc/lib Modified Files: NCClient.java Log Message: Changed fp digits to 2 (was 3) Index: NCClient.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/lib/NCClient.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** NCClient.java 9 Feb 2007 12:23:59 -0000 1.5 --- NCClient.java 21 Feb 2007 14:19:19 -0000 1.6 *************** *** 118,122 **** final static protected NumberFormat nf = NumberFormat.getInstance(); ! final static protected int NFDigits = 3; static { --- 118,122 ---- final static protected NumberFormat nf = NumberFormat.getInstance(); ! final static protected int NFDigits = 2; static { |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:44:46
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27663/src/edu/harvard/syrah/pyxida/api Modified Files: ExternalAPI.java Log Message: Minor formatting change Index: ExternalAPI.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPI.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** ExternalAPI.java 21 Feb 2007 13:10:29 -0000 1.19 --- ExternalAPI.java 21 Feb 2007 13:44:42 -0000 1.20 *************** *** 3,8 **** import java.util.*; ! import edu.harvard.syrah.prp.Log; ! import edu.harvard.syrah.prp.NetUtil; import edu.harvard.syrah.pyxida.Pyxida; import edu.harvard.syrah.pyxida.nc.NCManager; --- 3,7 ---- import java.util.*; ! import edu.harvard.syrah.prp.*; import edu.harvard.syrah.pyxida.Pyxida; import edu.harvard.syrah.pyxida.nc.NCManager; *************** *** 350,354 **** sb.append("<tr><td><em>Primary Sys Coord:</em></td><td width=10></td><td>" + ncManager.getLocalCoord() + "</td></tr>\n"); ! sb.append("<tr><td><em>Primary Sys Coord Error:</em></td><td width=10></td><td>" + ncManager.getLocalError() + "</td></tr>\n"); sb.append("<tr><td><em>Primary App Coord:</em></td><td width=10></td><td>" + ncManager.getStableCoord() + "</td></tr>\n"); --- 349,353 ---- sb.append("<tr><td><em>Primary Sys Coord:</em></td><td width=10></td><td>" + ncManager.getLocalCoord() + "</td></tr>\n"); ! sb.append("<tr><td><em>Primary Sys Coord Error:</em></td><td width=10></td><td>" + POut.toString(ncManager.getLocalError()) + "</td></tr>\n"); sb.append("<tr><td><em>Primary App Coord:</em></td><td width=10></td><td>" + ncManager.getStableCoord() + "</td></tr>\n"); *************** *** 356,360 **** sb.append("<tr><td><em>Secondary Sys Coord:</em></td><td width=10></td><td>" + ncManager.getLocalSecondaryCoord() + "</td></tr>\n"); ! sb.append("<tr><td><em>Secondary Sys Coord Error:</em></td><td width=10></td><td>" + ncManager.getLocalSecondaryError() + "</td></tr>\n"); sb.append("<tr><td><em>Secondary App Coord:</em></td><td width=10></td><td>" + ncManager.getStableSecondaryCoord() + "</td></tr>\n"); --- 355,359 ---- sb.append("<tr><td><em>Secondary Sys Coord:</em></td><td width=10></td><td>" + ncManager.getLocalSecondaryCoord() + "</td></tr>\n"); ! sb.append("<tr><td><em>Secondary Sys Coord Error:</em></td><td width=10></td><td>" + POut.toString(ncManager.getLocalSecondaryError()) + "</td></tr>\n"); sb.append("<tr><td><em>Secondary App Coord:</em></td><td width=10></td><td>" + ncManager.getStableSecondaryCoord() + "</td></tr>\n"); |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:20:15
|
Update of /cvsroot/pyxida/Pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18091 Modified Files: TODO Log Message: Updated TODO file with stuff that needs to be done before PL list advertisement. Index: TODO =================================================================== RCS file: /cvsroot/pyxida/Pyxida/TODO,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** TODO 6 Feb 2007 17:54:03 -0000 1.18 --- TODO 21 Feb 2007 13:20:11 -0000 1.19 *************** *** 6,9 **** --- 6,18 ---- - Fix log server so that logs are rolled over into web accessible directory Currently in hourglass:/nc/log-pyxida + + - [DONE] Make webpage generated by PL nodes with coord nicer (e.g. + http://planetlab-1.imperial.ac.uk:55501) + + - Put logs with coordinate data online + + - Test the XMLRPC service to make sure that it works + + - Update SF webpage ###################################################################### |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:10:34
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405/src/edu/harvard/syrah/pyxida/api Modified Files: ExternalAPI.java XMLRPC_API.java Log Message: Improved Pyxida node webpage Index: ExternalAPI.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPI.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ExternalAPI.java 8 Jan 2007 14:07:57 -0000 1.18 --- ExternalAPI.java 21 Feb 2007 13:10:29 -0000 1.19 *************** *** 1,12 **** package edu.harvard.syrah.pyxida.api; ! import java.util.ArrayList; ! import java.util.Hashtable; ! import java.util.List; ! import java.util.Map; ! import java.util.Vector; import edu.harvard.syrah.prp.Log; import edu.harvard.syrah.prp.NetUtil; import edu.harvard.syrah.pyxida.nc.NCManager; import edu.harvard.syrah.pyxida.nc.lib.Coordinate; --- 1,9 ---- package edu.harvard.syrah.pyxida.api; ! import java.util.*; import edu.harvard.syrah.prp.Log; import edu.harvard.syrah.prp.NetUtil; + import edu.harvard.syrah.pyxida.Pyxida; import edu.harvard.syrah.pyxida.nc.NCManager; import edu.harvard.syrah.pyxida.nc.lib.Coordinate; *************** *** 20,38 **** public class ExternalAPI extends HTTPCallbackHandler implements ExternalAPIIF { private static final Log log = new Log(ExternalAPI.class); ! private static String HTTP_COORD_BEGIN = ! "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" ! + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">" ! + "<head>" ! + "<title>Pyxida Node</title>" ! + "</head>" ! + "<body>"; ! ! private static String HTTP_COORD_END = ! "</body>" ! + "</html>"; private NCManager ncManager; ! public ExternalAPI(NCManager ncManager) { this.ncManager = ncManager; --- 17,55 ---- public class ExternalAPI extends HTTPCallbackHandler implements ExternalAPIIF { private static final Log log = new Log(ExternalAPI.class); ! private static String HTTP_COORD_BEGIN = ! "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" ! + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n" ! + "<head>\n" ! + "<title>Pyxida Node</title>\n" ! + "<style type=\"text/css\">\n" ! + "body { margin-top: 1em; margin-bottom: 1em; margin-left: 1em; margin-right: 1em; }\n" ! + "</style>\n" ! + "</head>\n" ! + "<body>\n" ! + "<img style=\"float: left; margin-right: 1em; \" alt=\"Pyxida Logo\" src=\"http://pyxida.sourceforge.net/img/pyxida4-scaled.jpg\"/>\n" ! + "<center><h2><a href=\"http://pyxida.sourceforge.net\">Pyxida</a> Node Information</h2>\n" ! + "<table>\n" ! + "<tr><td width=\"40%\" align=\"center\"><h3>Node Information</h3></td>\n" ! + "<td width=\"10%\"> </td>\n" ! + "<td><h3 width=\"50%\" align=\"center\">Neighbour Information</h3></td>\n" ! + "</tr>\n" ! + "<tr><td align=\"center\" valign=\"top\">\n" ! + "<table>\n"; ! ! private static String HTTP_COORD_MIDDLE = ! "</td>\n" ! + "<td></td><td></table>\n" ! + "</td><td> </td><td valign=\"top\"><table width=\"100%\">\n"; ! ! private static String HTTP_COORD_END = ! "</table>\n" ! + "</td></tr></table>\n" ! + "</center>\n" ! + "</body>\n" ! + "</html>\n"; private NCManager ncManager; ! public ExternalAPI(NCManager ncManager) { this.ncManager = ncManager; *************** *** 40,44 **** public void createProxyCoord(String remoteNodeStr, final int lease, ! final CB1<String> cbResult) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 57,61 ---- public void createProxyCoord(String remoteNodeStr, final int lease, ! final CB1<String> cbResult) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { *************** *** 59,67 **** } } ! }); } public void getProxyCoord(String remoteNodeStr, ! final CB2<Vector<Double>,String> cbProxyCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 76,84 ---- } } ! }); } public void getProxyCoord(String remoteNodeStr, ! final CB2<Vector<Double>,String> cbProxyCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { *************** *** 82,90 **** } } ! }); } public void destroyProxyCoord(String remoteNodeStr, ! final CB1<String> cbResult) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 99,107 ---- } } ! }); } public void destroyProxyCoord(String remoteNodeStr, ! final CB1<String> cbResult) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { *************** *** 104,108 **** } } ! }); } --- 121,125 ---- } } ! }); } *************** *** 113,127 **** case OK: { log.debug("estimateRTT a="+nodeA+" b="+nodeB); ! if (addrMap.get(nodeA) == null) { ! String error = "Could not resolve a="+nodeA; ! log.warn(error); ! cbDistance.call(CBResult.ERROR(error),new Double(0)); ! } else if (addrMap.get(nodeB) == null) { ! String error = "Could not resolve b="+nodeB; ! log.warn(error); ! cbDistance.call(CBResult.ERROR(error),new Double(0)); ! } else { ! ncManager.estimateRTT(addrMap.get(nodeA), addrMap.get(nodeB), cbDistance); ! } break; } --- 130,144 ---- case OK: { log.debug("estimateRTT a="+nodeA+" b="+nodeB); ! if (addrMap.get(nodeA) == null) { ! String error = "Could not resolve a="+nodeA; ! log.warn(error); ! cbDistance.call(CBResult.ERROR(error),new Double(0)); ! } else if (addrMap.get(nodeB) == null) { ! String error = "Could not resolve b="+nodeB; ! log.warn(error); ! cbDistance.call(CBResult.ERROR(error),new Double(0)); ! } else { ! ncManager.estimateRTT(addrMap.get(nodeA), addrMap.get(nodeB), cbDistance); ! } break; } *************** *** 129,139 **** case ERROR: { log.warn(result.toString()); ! cbDistance.call(result,new Double(0)); } } } }); ! ! } --- 146,156 ---- case ERROR: { log.warn(result.toString()); ! cbDistance.call(result,new Double(0)); } } } }); ! ! } *************** *** 153,164 **** } ! public void getRemoteCoords(final Hashtable<String, Object> remoteNodesMap, ! final CB1<Map<String, Object>> cbRemoteCoords) { ! String [] nodesStr = new String[remoteNodesMap.size()]; int i = 0; for (Object obj : remoteNodesMap.keySet()) { String remoteNode = (String) obj; ! log.debug ("getRemoteCoords["+i+"]= "+remoteNode); nodesStr[i] = remoteNode; i++; --- 170,181 ---- } ! public void getRemoteCoords(final Hashtable<String, Object> remoteNodesMap, ! final CB1<Map<String, Object>> cbRemoteCoords) { ! String [] nodesStr = new String[remoteNodesMap.size()]; int i = 0; for (Object obj : remoteNodesMap.keySet()) { String remoteNode = (String) obj; ! log.debug ("getRemoteCoords["+i+"]= "+remoteNode); nodesStr[i] = remoteNode; i++; *************** *** 171,226 **** switch (result.state) { case OK: ! ! //TODO jonathan: why do you handle OK and TIMEOUT together and why is there an ERROR clause? ! // The way createResolved works is that it always returns OK but only includes the hostnames ! // that resolved correctly in the map. Let me know if you don't like this behaviour and I can change it. case TIMEOUT: { ! //StringBuffer dnsErrors = new StringBuffer(); List<AddressIF> remoteNodes = new ArrayList<AddressIF>(); ! for (AddressIF node : addrMap.values()) { ! if (node != null && node.hasPort()) { ! remoteNodes.add(node); ! } ! //else { ! //dnsErrors.append("Could not resolve "+node); ! //} ! } ncManager.getRemoteCoords(remoteNodes, new CB2<Map<AddressIF,Coordinate>,String>() { ! protected void cb(CBResult ncResult, ! Map<AddressIF,Coordinate> addr2coord, ! String errorString) { ! // TODO this does not work ! // We want to return DNS failures to the client ! ! // combine the two errors if there is already one in there ! // caused through DNS resolution problem below ! if (errorString.equals("Success")) { ! if (resultMap.get("result") == null) { ! resultMap.put("result", "Success"); ! } ! } else { ! if (resultMap.get("result") == null) { ! resultMap.put("result", errorString); ! } else { ! resultMap.put("result", resultMap.get("result") + "\n"+errorString); ! } ! } ! ! log.debug("responding to client addr2coord="+addr2coord.size()+ ! " errorString="+resultMap.get("result")); ! for (Map.Entry<AddressIF,Coordinate> entry : addr2coord.entrySet()) { ! resultMap.put(entry.getKey().toString(false), ! getVectorFromCoord(entry.getValue())); } - cbRemoteCoords.call(CBResult.OK(), resultMap); } ! }); break; } ! case ERROR: { // problem resolving one or more of the addresses log.warn(result.toString()); --- 188,243 ---- switch (result.state) { case OK: ! ! //TODO jonathan: why do you handle OK and TIMEOUT together and why is there an ERROR clause? ! // The way createResolved works is that it always returns OK but only includes the hostnames ! // that resolved correctly in the map. Let me know if you don't like this behaviour and I can change it. case TIMEOUT: { ! //StringBuffer dnsErrors = new StringBuffer(); List<AddressIF> remoteNodes = new ArrayList<AddressIF>(); ! for (AddressIF node : addrMap.values()) { ! if (node != null && node.hasPort()) { ! remoteNodes.add(node); ! } ! //else { ! //dnsErrors.append("Could not resolve "+node); ! //} ! } ncManager.getRemoteCoords(remoteNodes, new CB2<Map<AddressIF,Coordinate>,String>() { ! protected void cb(CBResult ncResult, ! Map<AddressIF,Coordinate> addr2coord, ! String errorString) { ! // TODO this does not work ! // We want to return DNS failures to the client ! ! // combine the two errors if there is already one in there ! // caused through DNS resolution problem below ! if (errorString.equals("Success")) { ! if (resultMap.get("result") == null) { ! resultMap.put("result", "Success"); ! } ! } else { ! if (resultMap.get("result") == null) { ! resultMap.put("result", errorString); ! } else { ! resultMap.put("result", resultMap.get("result") + "\n"+errorString); } } ! ! log.debug("responding to client addr2coord="+addr2coord.size()+ ! " errorString="+resultMap.get("result")); ! for (Map.Entry<AddressIF,Coordinate> entry : addr2coord.entrySet()) { ! resultMap.put(entry.getKey().toString(false), ! getVectorFromCoord(entry.getValue())); ! } ! cbRemoteCoords.call(CBResult.OK(), resultMap); ! } ! }); break; } ! case ERROR: { // problem resolving one or more of the addresses log.warn(result.toString()); *************** *** 235,239 **** public void getRemoteCoord(final String remoteNodeStr, ! final CB1<Map<String, Object>> cbRemoteCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 252,256 ---- public void getRemoteCoord(final String remoteNodeStr, ! final CB1<Map<String, Object>> cbRemoteCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { *************** *** 250,268 **** cbRemoteCoord.call(CBResult.OK(), resultMap); return; ! */ ! ncManager.getRemoteCoord(remoteNode, new CB1<Coordinate>() { protected void cb(CBResult ncResult, Coordinate remoteCoord) { Map<String, Object> resultMap = new Hashtable<String, Object>(); ! switch (ncResult.state) { ! case OK: { ! Vector<Double> listCoord = getVectorFromCoord(remoteCoord); ! resultMap.put("coord", listCoord); ! resultMap.put("result", "Success"); ! cbRemoteCoord.call(CBResult.OK(), resultMap); ! break; ! } case TIMEOUT: case ERROR: { --- 267,285 ---- cbRemoteCoord.call(CBResult.OK(), resultMap); return; ! */ ! ncManager.getRemoteCoord(remoteNode, new CB1<Coordinate>() { protected void cb(CBResult ncResult, Coordinate remoteCoord) { Map<String, Object> resultMap = new Hashtable<String, Object>(); ! switch (ncResult.state) { ! case OK: { ! Vector<Double> listCoord = getVectorFromCoord(remoteCoord); ! resultMap.put("coord", listCoord); ! resultMap.put("result", "Success"); ! cbRemoteCoord.call(CBResult.OK(), resultMap); ! break; ! } case TIMEOUT: case ERROR: { *************** *** 285,294 **** break; } ! } } }); } ! public void getLocalError(CB1<Double> cbLocalError) { cbLocalError.call(CBResult.OK(), ncManager.getLocalError()); --- 302,311 ---- break; } ! } } }); } ! public void getLocalError(CB1<Double> cbLocalError) { cbLocalError.call(CBResult.OK(), ncManager.getLocalError()); *************** *** 296,300 **** public void renewProxyCoord(String remoteNodeStr, final int lease, ! final CB1<String> cbResult) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 313,317 ---- public void renewProxyCoord(String remoteNodeStr, final int lease, ! final CB1<String> cbResult) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { *************** *** 314,318 **** } } ! }); } --- 331,335 ---- } } ! }); } *************** *** 320,332 **** protected void cb(CBResult result, AddressIF remoteAddr, String path, String requestData, CB2<String, byte[]> cbResponse) { ! Coordinate coord = ncManager.getLocalCoord(); ! String response = ! HTTP_COORD_BEGIN ! + "<a href=\"http://pyxida.sourceforge.net\"><img style=\"float: left; \" alt=\"Pyxida Logo\" src=\"http://pyxida.sourceforge.net/img/pyxida4-scaled.jpg\"/></a>" ! + "Local Network Coordinate: " + coord + "\n" ! + HTTP_COORD_END; ! cbResponse.call(result, "text/html", NetUtil.toHTTPBytes(response)); } --- 337,392 ---- protected void cb(CBResult result, AddressIF remoteAddr, String path, String requestData, CB2<String, byte[]> cbResponse) { ! Coordinate coord = ncManager.getLocalCoord(); + + StringBuffer sb = new StringBuffer(); + + sb.append(HTTP_COORD_BEGIN); ! sb.append("<tr><td><em>Version:</em></td><td width=10></td><td>" + Pyxida.VERSION + "</td></tr>\n"); ! sb.append("<tr><td><em>Uptime:</em></td><td width=10></td><td>" + Pyxida.getUptimeStr() + "</td></tr>\n"); ! ! sb.append("<tr><td> </td></tr>\n"); ! ! sb.append("<tr><td><em>Primary Sys Coord:</em></td><td width=10></td><td>" + ncManager.getLocalCoord() + "</td></tr>\n"); ! sb.append("<tr><td><em>Primary Sys Coord Error:</em></td><td width=10></td><td>" + ncManager.getLocalError() + "</td></tr>\n"); ! sb.append("<tr><td><em>Primary App Coord:</em></td><td width=10></td><td>" + ncManager.getStableCoord() + "</td></tr>\n"); ! ! sb.append("<tr><td> </td></tr>\n"); ! ! sb.append("<tr><td><em>Secondary Sys Coord:</em></td><td width=10></td><td>" + ncManager.getLocalSecondaryCoord() + "</td></tr>\n"); ! sb.append("<tr><td><em>Secondary Sys Coord Error:</em></td><td width=10></td><td>" + ncManager.getLocalSecondaryError() + "</td></tr>\n"); ! sb.append("<tr><td><em>Secondary App Coord:</em></td><td width=10></td><td>" + ncManager.getStableSecondaryCoord() + "</td></tr>\n"); ! ! sb.append(HTTP_COORD_MIDDLE); ! ! Set<AddressIF> upNeighbours = ncManager.getUpNeighbours(); ! sb.append("<tr><td align=\"center\"><em>Up Neighbours (" + upNeighbours.size() + ")</em></td></tr>\n"); ! for (AddressIF upNeighbour : upNeighbours) { ! sb.append("<tr><td align=\"left\"><a href=\"http://" + upNeighbour.getHostname() + ":" + XMLRPC_API.API_PORT + "/\">"); ! sb.append(upNeighbour.getHostname() + ":" + XMLRPC_API.API_PORT + "</a></td></tr>\n"); ! } ! ! sb.append("<tr><td> </td></tr>\n"); ! ! Set<AddressIF> pendingNeighbours = ncManager.getPendingNeighbours(); ! sb.append("<tr><td align=\"center\"><em>Pending Neighbours (" + pendingNeighbours.size() + ")</em></td></tr>\n"); ! for (AddressIF pendingNeighbour : pendingNeighbours) { ! sb.append("<tr><td align=\"left\"><a href=\"http://" + pendingNeighbour.getHostname() + ":" + XMLRPC_API.API_PORT + "/\">"); ! sb.append(pendingNeighbour.getHostname() + ":" + XMLRPC_API.API_PORT + "</a></td></tr>\n"); ! } ! ! sb.append("<tr><td> </td></tr>\n"); ! ! Set<AddressIF> downNeighbours = ncManager.getDownNeighbours(); ! sb.append("<tr><td align=\"center\"><em>Down Neighbours (" + downNeighbours.size() + ")</em></td></tr>\n"); ! for (AddressIF downNeighbour : downNeighbours) { ! sb.append("<tr><td align=\"left\"><a href=\"http://" + downNeighbour.getHostname() + ":" + XMLRPC_API.API_PORT + "/\">"); ! sb.append(downNeighbour.getHostname() + ":" + XMLRPC_API.API_PORT + "</a></td></tr>\n"); ! } ! ! sb.append(HTTP_COORD_END); ! ! cbResponse.call(result, "text/html", NetUtil.toHTTPBytes(sb.toString())); } Index: XMLRPC_API.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/XMLRPC_API.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XMLRPC_API.java 13 Dec 2006 14:23:12 -0000 1.5 --- XMLRPC_API.java 21 Feb 2007 13:10:29 -0000 1.6 *************** *** 14,17 **** --- 14,19 ---- private static final String XMLRPC_OBJECT_NAME = "pyxida"; + static final int API_PORT = Integer.parseInt(Config.getProperty("pyxida.api.port", "55501")); + // App comm interface private XMLRPCCommIF apiComm; *************** *** 25,31 **** public void init(CB0 cbDone) { apiComm = new XMLRPCComm(); ! int port = Integer.parseInt(Config.getProperty("pyxida.api.port", "55501")); ! log.debug("Using port=" + port); ! AddressIF apiAddress = AddressFactory.createServer(port); apiComm.registerXMLRPCHandler(XMLRPC_OBJECT_NAME, api); apiComm.registerHandler("/", api); --- 27,32 ---- public void init(CB0 cbDone) { apiComm = new XMLRPCComm(); ! log.debug("Using port=" + API_PORT); ! AddressIF apiAddress = AddressFactory.createServer(API_PORT); apiComm.registerXMLRPCHandler(XMLRPC_OBJECT_NAME, api); apiComm.registerHandler("/", api); |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:10:33
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: Improved Pyxida node webpage Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** NCManager.java 15 Feb 2007 18:01:26 -0000 1.35 --- NCManager.java 21 Feb 2007 13:10:29 -0000 1.36 *************** *** 36,40 **** "pyxida.dimensions.secondary", "4")); - public static final boolean WATCH_NEIGHBORS = Boolean.parseBoolean(Config.getConfigProps().getProperty( "pyxida.ncmanager.watch_neighbors", "false")); --- 36,39 ---- *************** *** 493,497 **** // If this guy is in an unknown state add him to pending. ! void addPendingNeighbor(AddressIF node) { if (node.equals(comm.getLocalAddress())) return; --- 492,498 ---- // If this guy is in an unknown state add him to pending. ! void addPendingNeighbor(AddressIF node) { ! assert node != null : "Pending neighbour is null?"; ! if (node.equals(comm.getLocalAddress())) return; *************** *** 555,558 **** --- 556,571 ---- + downNeighbors.size()); } + + public Set<AddressIF> getPendingNeighbours() { + return pendingNeighbors; + } + + public Set<AddressIF> getUpNeighbours() { + return upNeighbors; + } + + public Set<AddressIF> getDownNeighbours() { + return downNeighbors; + } class CoordClient { |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:10:33
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405/src/edu/harvard/syrah/pyxida Modified Files: Pyxida.java Log Message: Improved Pyxida node webpage Index: Pyxida.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/Pyxida.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** Pyxida.java 15 Feb 2007 18:01:26 -0000 1.21 --- Pyxida.java 21 Feb 2007 13:10:29 -0000 1.22 *************** *** 3,15 **** import java.util.Random; ! import edu.harvard.syrah.prp.ANSI; ! import edu.harvard.syrah.prp.Log; import edu.harvard.syrah.pyxida.api.APIManager; import edu.harvard.syrah.pyxida.log.LogManager; import edu.harvard.syrah.pyxida.nc.NCManager; import edu.harvard.syrah.pyxida.ping.PingManager; ! import edu.harvard.syrah.sbon.async.CBResult; ! import edu.harvard.syrah.sbon.async.Config; ! import edu.harvard.syrah.sbon.async.EventLoop; import edu.harvard.syrah.sbon.async.CallbacksIF.CB0; import edu.harvard.syrah.sbon.comm.AddressFactory; --- 3,12 ---- import java.util.Random; ! import edu.harvard.syrah.prp.*; import edu.harvard.syrah.pyxida.api.APIManager; import edu.harvard.syrah.pyxida.log.LogManager; import edu.harvard.syrah.pyxida.nc.NCManager; import edu.harvard.syrah.pyxida.ping.PingManager; ! import edu.harvard.syrah.sbon.async.*; import edu.harvard.syrah.sbon.async.CallbacksIF.CB0; import edu.harvard.syrah.sbon.comm.AddressFactory; *************** *** 24,28 **** private static final int MINOR_VERSION = 1; private static final int MINOR_MINOR_VERSION = 4; ! private static final String VERSION = MAJOR_VERSION + "." + MINOR_VERSION + "." + MINOR_MINOR_VERSION; static { --- 21,25 ---- private static final int MINOR_VERSION = 1; private static final int MINOR_MINOR_VERSION = 4; ! public static final String VERSION = MAJOR_VERSION + "." + MINOR_VERSION + "." + MINOR_MINOR_VERSION; static { *************** *** 41,46 **** public static final boolean USE_ICMP = Boolean.parseBoolean(Config.getConfigProps().getProperty("pyxida.use_icmp", "false")); ! public static final long STATS_PERIOD = Long.parseLong(Config.getConfigProps().getProperty("pyxida.stats_period", "600000")); ! private static Pyxida pyxida = null; --- 38,43 ---- public static final boolean USE_ICMP = Boolean.parseBoolean(Config.getConfigProps().getProperty("pyxida.use_icmp", "false")); ! private static final long START_TIME = System.currentTimeMillis(); ! private static Pyxida pyxida = null; *************** *** 50,78 **** private LogManager logManager; private ObjCommIF comm; - final CB0 statCB; public static Random random; private Pyxida() { - statCB = new CB0() { - protected void cb(CBResult result) { - printStats(); - registerStatsTimer(); - } - }; - } - - void registerStatsTimer () { - EventLoop.get().registerTimerCB(STATS_PERIOD, statCB); - } - - void printStats() { - ncManager.printStats(); - pingManager.printStats(); } private void init(final CB0 cbDone) { random = new Random(System.currentTimeMillis()); - registerStatsTimer(); // Initiliase the ObjComm communication module --- 47,58 ---- *************** *** 103,107 **** case OK: { // Initialise the log manager ! logManager = new LogManager(comm, ncManager); logManager.init(cbDone); break; --- 83,87 ---- case OK: { // Initialise the log manager ! logManager = new LogManager(comm, ncManager, pingManager); logManager.init(cbDone); break; *************** *** 132,135 **** --- 112,121 ---- }); } + + public static String getUptimeStr() { + long now = System.currentTimeMillis(); + + return PUtil.getDiffTimeStr(START_TIME, now); + } /** |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:10:32
|
Update of /cvsroot/pyxida/Pyxida/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405/config Modified Files: pyxida.cfg Log Message: Improved Pyxida node webpage Index: pyxida.cfg =================================================================== RCS file: /cvsroot/pyxida/Pyxida/config/pyxida.cfg,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** pyxida.cfg 15 Feb 2007 18:01:25 -0000 1.13 --- pyxida.cfg 21 Feb 2007 13:10:28 -0000 1.14 *************** *** 24,28 **** # Nodes learn about the rest of the system through gossip. # Separate entries with a single whitespace. ! pyxida.bootstraplist=glenora.eecs.harvard.edu sb01.eecs.harvard.edu sb02.eecs.harvard.edu sb10.eecs.harvard.edu sb11.eecs.harvard.edu # Use ICMP = boolean --- 24,30 ---- # Nodes learn about the rest of the system through gossip. # Separate entries with a single whitespace. ! # pyxida.bootstraplist=glenora.eecs.harvard.edu sb01.eecs.harvard.edu sb02.eecs.harvard.edu sb10.eecs.harvard.edu sb11.eecs.harvard.edu ! ! pyxida.bootstraplist=righthand.eecs.harvard.edu pl1.ucs.indiana.edu neu1.6planetlab.edu.cn ds-pl1.technion.ac.il pl1.cs.utk.edu planet1.scs.cs.nyu.edu planet3.seattle.intel-research.net planetlab-01.naist.jp planetlab10.millennium.berkeley.edu planetlab1.cis.upenn.edu planetlab1.csail.mit.edu planetlab1.cs.duke.edu planetlab1.flux.utah.edu planetlab-1.imperial.ac.uk planetlab-2.cs.princeton.edu planetlab2.cs.umass.edu planetlab2.upc.es ricepl-1.cs.rice.edu vn2.cs.wustl.edu # Use ICMP = boolean *************** *** 36,40 **** # Hostname of a centralised log server that periodically logs the coordinate ! pyxida.logserver=hourglass.eecs.harvard.edu # Specifies how often to retry connecting to the log server (read by the nodes) --- 38,42 ---- # Hostname of a centralised log server that periodically logs the coordinate ! # pyxida.logserver=hourglass.eecs.harvard.edu # Specifies how often to retry connecting to the log server (read by the nodes) |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:10:31
|
Update of /cvsroot/pyxida/Pyxida/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405/lib Modified Files: sbon-async.jar util-prp.jar Log Message: Improved Pyxida node webpage Index: sbon-async.jar =================================================================== RCS file: /cvsroot/pyxida/Pyxida/lib/sbon-async.jar,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 Binary files /tmp/cvsLHJDXv and /tmp/cvs7IWF8N differ Index: util-prp.jar =================================================================== RCS file: /cvsroot/pyxida/Pyxida/lib/util-prp.jar,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 Binary files /tmp/cvsRkMJGx and /tmp/cvsmwzVWP differ |
|
From: Peter P. <pr...@us...> - 2007-02-21 13:10:31
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/log In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14405/src/edu/harvard/syrah/pyxida/log Modified Files: LogManager.java Log Message: Improved Pyxida node webpage Index: LogManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/log/LogManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LogManager.java 15 Feb 2007 18:01:26 -0000 1.3 --- LogManager.java 21 Feb 2007 13:10:29 -0000 1.4 *************** *** 4,7 **** --- 4,8 ---- import edu.harvard.syrah.pyxida.Pyxida; import edu.harvard.syrah.pyxida.nc.NCManager; + import edu.harvard.syrah.pyxida.ping.PingManager; import edu.harvard.syrah.sbon.async.*; import edu.harvard.syrah.sbon.async.CBResult.CBState; *************** *** 20,32 **** static final long ERROR_RETRY_INTERVAL = Long.valueOf(Config.getProperty("pyxida.logserver.error_interval", "600000")); private ObjCommIF comm; private NCManager ncManager; ! public LogManager(ObjCommIF objComm, NCManager ncManager) { this.comm = objComm; this.ncManager = ncManager; } public void init(final CB0 cb0) { if (LOG_SERVER_HOSTNAME == null) { log.debug("Not logging to log server"); --- 21,48 ---- static final long ERROR_RETRY_INTERVAL = Long.valueOf(Config.getProperty("pyxida.logserver.error_interval", "600000")); + public static final long STATS_PERIOD = Long.parseLong(Config.getConfigProps().getProperty("pyxida.stats_period", "600000")); + private ObjCommIF comm; private NCManager ncManager; + private PingManager pingManager; + + final CB0 statCB; ! public LogManager(ObjCommIF objComm, NCManager ncManager, PingManager pingManager) { this.comm = objComm; this.ncManager = ncManager; + this.pingManager = pingManager; + + statCB = new CB0() { + protected void cb(CBResult result) { + printStats(); + registerStatsTimer(); + } + }; } public void init(final CB0 cb0) { + registerStatsTimer(); + if (LOG_SERVER_HOSTNAME == null) { log.debug("Not logging to log server"); *************** *** 45,48 **** --- 61,73 ---- }); } + + void printStats() { + ncManager.printStats(); + pingManager.printStats(); + } + + void registerStatsTimer () { + EventLoop.get().registerTimerCB(STATS_PERIOD, statCB); + } } |
|
From: Peter P. <pr...@us...> - 2007-02-20 17:28:51
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20297/bin Modified Files: animateNC.pl Log Message: Made animations prettier. Index: animateNC.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/animateNC.pl,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** animateNC.pl 16 Feb 2007 10:10:12 -0000 1.13 --- animateNC.pl 20 Feb 2007 17:28:42 -0000 1.14 *************** *** 25,32 **** my $alpha = 0.01; my $zoffset = 100; - my $k = 100; # Scaling factor for 4D->3D projection - ###################################################################### --- 25,31 ---- my $alpha = 0.01; + my $showShadows = 0; my $zoffset = 100; ###################################################################### *************** *** 168,187 **** print GPOUT "set output \'/tmp/pyxida-anim-$filenameCount.$frameFormat\'\n"; print GPOUT "set title \'$title\'\n"; my $xmin = $xrange->percentile(100 - $rangePercentile); ! $xmin = 0 unless defined $xmin; ! my $xmax = $xrange->percentile($rangePercentile); $xmax = 0 unless defined $xmax; - my $ymin = $yrange->percentile(100 - $rangePercentile); $ymin = 0 unless defined $ymin; - my $ymax = $yrange->percentile($rangePercentile); $ymax = 0 unless defined $ymax; - my $zmin = $zrange->percentile(100 - $rangePercentile); $zmin = 0 unless defined $zmin; - my $zmax = $zrange->percentile($rangePercentile); $zmax = 0 unless defined $zmax; --- 167,188 ---- print GPOUT "set output \'/tmp/pyxida-anim-$filenameCount.$frameFormat\'\n"; print GPOUT "set title \'$title\'\n"; + + print GPOUT << "EOF"; + set grid nopolar + set grid xtics nomxtics ytics nomytics noztics nomztics nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics + set grid layerdefault + + EOF my $xmin = $xrange->percentile(100 - $rangePercentile); ! $xmin = 0 unless defined $xmin; my $xmax = $xrange->percentile($rangePercentile); $xmax = 0 unless defined $xmax; my $ymin = $yrange->percentile(100 - $rangePercentile); $ymin = 0 unless defined $ymin; my $ymax = $yrange->percentile($rangePercentile); $ymax = 0 unless defined $ymax; my $zmin = $zrange->percentile(100 - $rangePercentile); $zmin = 0 unless defined $zmin; my $zmax = $zrange->percentile($rangePercentile); $zmax = 0 unless defined $zmax; *************** *** 215,222 **** print GPOUT "flat(p) = ".($s_zmin - $zoffset + 10)."\n"; #print GPOUT "splot '-' notitle\n"; # notitle? ! print GPOUT "splot '-' ".'using 1:2:3:(rgb($4,$5,$6)) notitle with points lc rgb variable,\\'."\n"; ! print GPOUT "'-' ".'using 1:2:(flat($3)) '."notitle with points lc \"#CCCCCC\"\n"; my $shadow = ''; --- 216,229 ---- print GPOUT "flat(p) = ".($s_zmin - $zoffset + 10)."\n"; + #print GPOUT "set pointsize 1.5\n"; + #print GPOUT "splot '-' notitle\n"; # notitle? ! print GPOUT "splot '-' " . 'using 1:2:3:(rgb($4,$5,$6)) notitle with points pt 7 lc rgb variable'; ! if ($showShadows) { ! print GPOUT ", '-' ".'using 1:2:(flat($3)) '."notitle with points lc \"#CCCCCC\"\n"; ! } else { ! print GPOUT "\n"; ! } my $shadow = ''; *************** *** 233,237 **** } print GPOUT "e\n"; ! print GPOUT "$shadow"."e\n"; } --- 240,244 ---- } print GPOUT "e\n"; ! print GPOUT "$shadow"."e\n" if ($showShadows); } *************** *** 257,276 **** } ! sub projectClever4D() { ! my @coord4D = @_; ! print STDERR "4D: $coord4D[0] $coord4D[1] $coord4D[2] $coord4D[3]\n" if ($debug); ! ! # x' = k * (x / w) ! # y' = k * (y / w) ! # z' = k * (z / w) ! ! my @coord3D = (); ! if ($coord4D[3] == 0) { ! @coord3D = (0, 0, 0); ! } else { ! @coord3D = ( $k * $coord4D[0] / $coord4D[3], $k * $coord4D[1] / $coord4D[3], $k * $coord4D[2] / $coord4D[3] ); ! } ! return @coord3D; ! } sub projectSimple() { --- 264,283 ---- } ! #sub projectClever4D() { ! # my @coord4D = @_; ! # print STDERR "4D: $coord4D[0] $coord4D[1] $coord4D[2] $coord4D[3]\n" if ($debug); ! # ! # # x' = k * (x / w) ! # # y' = k * (y / w) ! # # z' = k * (z / w) ! # ! # my @coord3D = (); ! # if ($coord4D[3] == 0) { ! # @coord3D = (0, 0, 0); ! # } else { ! # @coord3D = ( $k * $coord4D[0] / $coord4D[3], $k * $coord4D[1] / $coord4D[3], $k * $coord4D[2] / $coord4D[3] ); ! # } ! # return @coord3D; ! #} sub projectSimple() { |
|
From: Peter P. <pr...@us...> - 2007-02-16 10:10:14
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4462/bin Modified Files: animateNC.pl Log Message: Fixed bug in regex Index: animateNC.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/animateNC.pl,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** animateNC.pl 15 Feb 2007 18:52:43 -0000 1.12 --- animateNC.pl 16 Feb 2007 10:10:12 -0000 1.13 *************** *** 102,106 **** while (my $line = <>) { ! if ($line =~ m/\w\w (\d+) .* a=(.+) .* sc2=\[(.+),(.+),(.+),h(.+)\] ac2=\[(.+),(.+),(.+),h(.+)\]/) { my ($ts, $addr) = ($1 / 1000, $2); my @sc = ($3, $4, $5, $6); --- 102,106 ---- while (my $line = <>) { ! if ($line =~ m/\w\w (\d+) \S+ a=(\S+) .+ sc2=\[(.+),(.+),(.+),h(.+)\] ac2=\[(.+),(.+),(.+),h(.+)\]/) { my ($ts, $addr) = ($1 / 1000, $2); my @sc = ($3, $4, $5, $6); *************** *** 170,185 **** my $xmin = $xrange->percentile(100 - $rangePercentile); my $xmax = $xrange->percentile($rangePercentile); my $ymin = $yrange->percentile(100 - $rangePercentile); my $ymax = $yrange->percentile($rangePercentile); my $zmin = $zrange->percentile(100 - $rangePercentile); my $zmax = $zrange->percentile($rangePercentile); ! $s_xmin = $xmin unless $s_xmin; ! $s_xmax = $xmax unless $s_xmax; ! $s_ymin = $ymin unless $s_ymin; ! $s_ymax = $ymax unless $s_ymax; ! $s_zmin = $zmin unless $s_zmin; ! $s_zmax = $zmax unless $s_zmax; $s_xmin = (1 - $alpha) * $s_xmin + ($alpha * $xmin); --- 170,196 ---- my $xmin = $xrange->percentile(100 - $rangePercentile); + $xmin = 0 unless defined $xmin; + my $xmax = $xrange->percentile($rangePercentile); + $xmax = 0 unless defined $xmax; + my $ymin = $yrange->percentile(100 - $rangePercentile); + $ymin = 0 unless defined $ymin; + my $ymax = $yrange->percentile($rangePercentile); + $ymax = 0 unless defined $ymax; + my $zmin = $zrange->percentile(100 - $rangePercentile); + $zmin = 0 unless defined $zmin; + my $zmax = $zrange->percentile($rangePercentile); + $zmax = 0 unless defined $zmax; ! $s_xmin = $xmin unless defined $s_xmin; ! $s_xmax = $xmax unless defined $s_xmax; ! $s_ymin = $ymin unless defined $s_ymin; ! $s_ymax = $ymax unless defined $s_ymax; ! $s_zmin = $zmin unless defined $s_zmin; ! $s_zmax = $zmax unless defined $s_zmax; $s_xmin = (1 - $alpha) * $s_xmin + ($alpha * $xmin); |
|
From: Peter P. <pr...@us...> - 2007-02-15 18:53:14
|
Update of /cvsroot/pyxida/Pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1112 Modified Files: build.xml Log Message: Updated Pyxida version Index: build.xml =================================================================== RCS file: /cvsroot/pyxida/Pyxida/build.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** build.xml 2 Feb 2007 16:07:23 -0000 1.11 --- build.xml 15 Feb 2007 18:53:10 -0000 1.12 *************** *** 13,17 **** <property name="log-nodes" location="log/nodes" /> ! <property name="version" value="0.1.3" /> <property name="Pyxida-jar" value="pyxida-${version}.jar" /> --- 13,17 ---- <property name="log-nodes" location="log/nodes" /> ! <property name="version" value="0.1.4" /> <property name="Pyxida-jar" value="pyxida-${version}.jar" /> |
|
From: Peter P. <pr...@us...> - 2007-02-15 18:52:47
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv767/bin Modified Files: animateNC.pl Log Message: Updated animate script to support new 3D+h log format (untested) Index: animateNC.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/animateNC.pl,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** animateNC.pl 9 Feb 2007 12:23:59 -0000 1.11 --- animateNC.pl 15 Feb 2007 18:52:43 -0000 1.12 *************** *** 102,109 **** while (my $line = <>) { ! if ($line =~ m/\w\w (\d+) .* addr=(.+) sc=\[(.+),(.+),(.+),(.+),h(.+)\] ac=\[(.+),(.+),(.+),(.+),h(.+)\]/) { my ($ts, $addr) = ($1 / 1000, $2); ! my @sc = ($3, $4, $5, $6, $7); ! my @ac = ($8, $9, $10, $11, $12); my $dateTS = localtime($ts); print STDERR $line if ($debug); --- 102,109 ---- while (my $line = <>) { ! if ($line =~ m/\w\w (\d+) .* a=(.+) .* sc2=\[(.+),(.+),(.+),h(.+)\] ac2=\[(.+),(.+),(.+),h(.+)\]/) { my ($ts, $addr) = ($1 / 1000, $2); ! my @sc = ($3, $4, $5, $6); ! my @ac = ($7, $8, $9, $10); my $dateTS = localtime($ts); print STDERR $line if ($debug); *************** *** 246,250 **** } ! sub projectClever() { my @coord4D = @_; print STDERR "4D: $coord4D[0] $coord4D[1] $coord4D[2] $coord4D[3]\n" if ($debug); --- 246,250 ---- } ! sub projectClever4D() { my @coord4D = @_; print STDERR "4D: $coord4D[0] $coord4D[1] $coord4D[2] $coord4D[3]\n" if ($debug); *************** *** 264,270 **** sub projectSimple() { ! my @coord4D = @_; ! print STDERR "4D: $coord4D[0] $coord4D[1] $coord4D[2] $coord4D[3]\n" if ($debug); ! my @coord3D = ($coord4D[0], $coord4D[1], $coord4D[2]); return @coord3D; } --- 264,270 ---- sub projectSimple() { ! my @coord3Dh = @_; ! print STDERR "3D+h: $coord3Dh[0] $coord3Dh[1] $coord3Dh[2] $coord3Dh[3]\n" if ($debug); ! my @coord3D = ($coord3Dh[0], $coord3Dh[1], $coord3Dh[2]); return @coord3D; } |
|
From: Peter P. <pr...@us...> - 2007-02-15 18:01:37
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13967/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java GossipResponseMsg.java GossipRequestMsg.java Log Message: Updated Pyxida to maintain a secondary 3D+h coordinate Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** NCManager.java 5 Feb 2007 18:43:04 -0000 1.34 --- NCManager.java 15 Feb 2007 18:01:26 -0000 1.35 *************** *** 18,22 **** import edu.harvard.syrah.sbon.comm.AddressFactory; import edu.harvard.syrah.sbon.comm.AddressIF; ! import edu.harvard.syrah.sbon.comm.obj. *; /** --- 18,22 ---- import edu.harvard.syrah.sbon.comm.AddressFactory; import edu.harvard.syrah.sbon.comm.AddressIF; ! import edu.harvard.syrah.sbon.comm.obj.*; [...1051 lines suppressed...] } --- 780,784 ---- } ! public void expire() { lease = 0; } *************** *** 767,771 **** public boolean hasExpired() { if (System.currentTimeMillis() > lease) { ! log.debug("ProxyClient "+addr+" has expired"); return true; } --- 786,790 ---- public boolean hasExpired() { if (System.currentTimeMillis() > lease) { ! log.debug("ProxyClient " + addr + " has expired"); return true; } Index: GossipResponseMsg.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/GossipResponseMsg.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** GossipResponseMsg.java 29 Nov 2006 11:08:20 -0000 1.4 --- GossipResponseMsg.java 15 Feb 2007 18:01:26 -0000 1.5 *************** *** 14,30 **** public class GossipResponseMsg extends ObjMessage { ! static final long serialVersionUID = 1000000001L; ! ! final Coordinate remoteCoordinate; ! final double remoteError; ! final long remoteAge; ! final Set<AddressIF> nodes; ! public GossipResponseMsg (Coordinate _remoteCoordinate, double _remoteError, long _remoteAge, ! Set<AddressIF> _nodes) { ! remoteCoordinate = _remoteCoordinate; ! remoteError = _remoteError; ! remoteAge = _remoteAge; ! nodes = _nodes; } } --- 14,41 ---- public class GossipResponseMsg extends ObjMessage { ! static final long serialVersionUID = 3L; ! final Coordinate remotePrimaryCoord; ! final double remotePrimaryError; ! final long remotePrimaryAge; ! ! final Coordinate remoteSecondaryCoord; ! final double remoteSecondaryError; ! final long remoteSecondaryAge; ! ! final Set<AddressIF> nodes; ! ! public GossipResponseMsg(Coordinate _remotePrimaryCoord, double _remotePrimaryError, long _remotePrimaryAge, ! Coordinate _remoteSecondaryCoord, double _remoteSecondaryError, long _remoteSecondaryAge, Set<AddressIF> _nodes) { ! remotePrimaryCoord = _remotePrimaryCoord; ! remotePrimaryError = _remotePrimaryError; ! remotePrimaryAge = _remotePrimaryAge; ! ! remoteSecondaryCoord = _remoteSecondaryCoord; ! remoteSecondaryError = _remoteSecondaryError; ! remoteSecondaryAge = _remoteSecondaryAge; ! ! nodes = _nodes; } + } Index: GossipRequestMsg.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/GossipRequestMsg.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GossipRequestMsg.java 29 Nov 2006 11:08:20 -0000 1.3 --- GossipRequestMsg.java 15 Feb 2007 18:01:26 -0000 1.4 *************** *** 14,20 **** public class GossipRequestMsg extends ObjMessage { ! static final long serialVersionUID = 1000000001L; ! final Coordinate coordinate; final Set<AddressIF> nodes; --- 14,21 ---- public class GossipRequestMsg extends ObjMessage { ! static final long serialVersionUID = 3L; ! final Coordinate primaryCoord; ! final Coordinate secondaryCoord; final Set<AddressIF> nodes; *************** *** 24,29 **** * set of nodes sender is gossipping to receiver */ ! public GossipRequestMsg (Coordinate _coordinate, Set<AddressIF> _nodes) { ! coordinate = _coordinate; nodes = _nodes; } --- 25,31 ---- * set of nodes sender is gossipping to receiver */ ! public GossipRequestMsg (Coordinate _primaryCoord, Coordinate _secondaryCoord, Set<AddressIF> _nodes) { ! primaryCoord= _primaryCoord; ! secondaryCoord = _secondaryCoord; nodes = _nodes; } |
|
From: Peter P. <pr...@us...> - 2007-02-15 18:01:32
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/log In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13967/src/edu/harvard/syrah/pyxida/log Modified Files: ReportCoordReqMsg.java LogManager.java ReportCoordReplyMsg.java Log Message: Updated Pyxida to maintain a secondary 3D+h coordinate Index: ReportCoordReplyMsg.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/log/ReportCoordReplyMsg.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ReportCoordReplyMsg.java 5 Feb 2007 18:48:17 -0000 1.2 --- ReportCoordReplyMsg.java 15 Feb 2007 18:01:26 -0000 1.3 *************** *** 5,9 **** public class ReportCoordReplyMsg extends ObjMessage { ! private static final long serialVersionUID = 2L; public long interval; --- 5,9 ---- public class ReportCoordReplyMsg extends ObjMessage { ! private static final long serialVersionUID = 3L; public long interval; Index: LogManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/log/LogManager.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LogManager.java 5 Feb 2007 18:48:17 -0000 1.2 --- LogManager.java 15 Feb 2007 18:01:26 -0000 1.3 *************** *** 38,41 **** --- 38,42 ---- protected void cb(CBResult result, AddressIF logServerAddr) { if (result.state == CBState.OK) { + log.debug("Logging to logserver=" + logServerAddr); EventLoop.get().registerTimerCB(new ReportCoordCB(comm, logServerAddr, ncManager)); } *************** *** 64,71 **** protected void cb(CBResult result) { ReportCoordReqMsg reqMsg = new ReportCoordReqMsg(); ! reqMsg.sysCoord = ncManager.getLocalCoord(); ! reqMsg.appCoord = ncManager.getStableCoord(); ! log.debug("Reporting coord=" + reqMsg.sysCoord + " to logserver"); comm.sendRequestMessage(reqMsg, logServerAddr, new ObjCommRRCB<ReportCoordReplyMsg>() { protected void cb(CBResult result, ReportCoordReplyMsg replyMsg, AddressIF remoteAddr, Long rtt) { --- 65,75 ---- protected void cb(CBResult result) { ReportCoordReqMsg reqMsg = new ReportCoordReqMsg(); ! reqMsg.primarySysCoord = ncManager.getLocalCoord(); ! reqMsg.primaryAppCoord = ncManager.getStableCoord(); ! ! reqMsg.secondarySysCoord = ncManager.getLocalSecondaryCoord(); ! reqMsg.secondaryAppCoord = ncManager.getStableSecondaryCoord(); ! log.debug("Reporting c1=" + reqMsg.primarySysCoord + " c2=" + reqMsg.secondarySysCoord + " to logserver"); comm.sendRequestMessage(reqMsg, logServerAddr, new ObjCommRRCB<ReportCoordReplyMsg>() { protected void cb(CBResult result, ReportCoordReplyMsg replyMsg, AddressIF remoteAddr, Long rtt) { Index: ReportCoordReqMsg.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/log/ReportCoordReqMsg.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ReportCoordReqMsg.java 5 Feb 2007 18:48:17 -0000 1.2 --- ReportCoordReqMsg.java 15 Feb 2007 18:01:26 -0000 1.3 *************** *** 6,13 **** public class ReportCoordReqMsg extends ObjMessage { ! private static final long serialVersionUID = 2L; ! public Coordinate sysCoord; ! public Coordinate appCoord; } --- 6,16 ---- public class ReportCoordReqMsg extends ObjMessage { ! private static final long serialVersionUID = 3L; ! public Coordinate primarySysCoord; ! public Coordinate primaryAppCoord; ! ! public Coordinate secondarySysCoord; ! public Coordinate secondaryAppCoord; } |