twisted.internet.protocol.ReconnectingClientFactory.html [plain text]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>twisted.internet.protocol.ReconnectingClientFactory</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="twisted.html">Package twisted</a> ::
<a href="twisted.internet.html">Package internet</a> ::
<a href="twisted.internet.protocol.html">Module protocol</a> ::
Class ReconnectingClientFactory
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="twisted.internet.protocol.ReconnectingClientFactory.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class ReconnectingClientFactory</h2>
<pre class="base-tree">
<a href="twisted.internet.protocol.Factory.html"><code>Factory</code></a> --+
|
<a href="twisted.internet.protocol.ClientFactory.html"><code>ClientFactory</code></a> --+
|
<b>ReconnectingClientFactory</b>
</pre><br />
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.words.tendril.TendrilFactory.html"><code>TendrilFactory</code></a>,
<a href="twisted.protocols.xmlstream.XmlStreamFactory.html"><code>XmlStreamFactory</code></a></dd></dl>
<hr/>
<p>My clients auto-reconnect with an exponential back-off.</p>
Note that clients should call my resetDelay method after they have
connected successfully.
<hr/>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.ReconnectingClientFactory.html#clientConnectionFailed" class="summary-sig-name"><code>clientConnectionFailed</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>connector</span>,
<span class=summary-sig-arg>reason</span>)</span></code>
<br />
Called when a connection has failed to connect.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="clientConnectionLost"></a><span class="summary-sig"><span class="summary-sig-name">clientConnectionLost</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>connector</span>,
<span class=summary-sig-arg>unused_reason</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.ReconnectingClientFactory.html#resetDelay" class="summary-sig-name"><code>resetDelay</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Call me after a successful connection to reset.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.ReconnectingClientFactory.html#retry" class="summary-sig-name"><code>retry</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>connector</span>)</span></code>
<br />
Have this connector connect again, after a suitable delay.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.ReconnectingClientFactory.html#stopTrying" class="summary-sig-name"><code>stopTrying</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
I put a stop to any attempt to reconnect in progress.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from ClientFactory</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.ClientFactory.html#startedConnecting" class="summary-sig-name"><code>startedConnecting</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>connector</span>)</span></code>
<br />
Called when a connection has been started.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Factory</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Factory.html#buildProtocol" class="summary-sig-name"><code>buildProtocol</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>addr</span>)</span></code>
<br />
Create an instance of a subclass of Protocol.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Factory.html#doStart" class="summary-sig-name"><code>doStart</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Make sure startFactory is called.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Factory.html#doStop" class="summary-sig-name"><code>doStop</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Make sure stopFactory is called.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Factory.html#startFactory" class="summary-sig-name"><code>startFactory</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
This will be called before I begin listening on a Port or
Connector.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Factory.html#stopFactory" class="summary-sig-name"><code>stopFactory</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
This will be called before I stop listening on all
Ports/Connectors.</td></tr>
</table><br />
<!-- =========== START OF INSTANCE VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Instance Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>float</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#factor"><code>factor</code></a></b>: a multiplicitive factor by which the delay grows</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>float</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#initialDelay"><code>initialDelay</code></a></b>: Delay for the first reconnection attempt.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>float</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#jitter"><code>jitter</code></a></b>: percentage of randomness to introduce into the delay length to prevent
stampeding.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#maxDelay"><code>maxDelay</code></a></b>: Maximum number of seconds between connection attempts.</td></tr>
</table><br />
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#_callID"><code>_callID</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#connector"><code>connector</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#continueTrying"><code>continueTrying</code></a></b> = <span title="1">1 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>float</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#delay"><code>delay</code></a></b> = <span title="1.0">1.0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#maxRetries"><code>maxRetries</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.ReconnectingClientFactory.html#retries"><code>retries</code></a></b> = <span title="0">0 </span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Factory</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.internet.protocol.Factory.html#__implements__"><code>__implements__</code></a></b> = <span title="(<class twisted.internet.interfaces.IProtocolFactory at 0x827f7bc>,)"><code>(<class twisted.internet.interfaces.IPr<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.internet.protocol.Factory.html#noisy"><code>noisy</code></a></b> = <span title="'sure, why not'"><code><span class="variable-quote">'</span>sure, why not<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.Factory.html#numPorts"><code>numPorts</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.Factory.html#protocol"><code>protocol</code></a></b> = <span title="None">None </span></td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="clientConnectionFailed"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">clientConnectionFailed</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>connector</span>,
<span class=sig-arg>reason</span>)</span>
</h3>
<p>Called when a connection has failed to connect.</p>
It may be useful to call connector.connect() - this will
reconnect.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>reason</b></code>
<br /><i>
(type=<a href="twisted.python.failure.Failure.html"
class="link"><code>twisted.python.failure.Failure</code></a>)</i>
</dd>
</dl>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.internet.protocol.ClientFactory.html#clientConnectionFailed"><code>twisted.internet.protocol.ClientFactory.clientConnectionFailed</code></a> <i>(inherited documentation)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="resetDelay"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">resetDelay</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Call me after a successful connection to reset.</p>
I reset the delay and the retry counter.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="retry"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">retry</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>connector</span>=<span class=sig-default>None</span>)</span>
</h3>
Have this connector connect again, after a suitable delay.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="stopTrying"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">stopTrying</span>(<span class=sig-arg>self</span>)</span>
</h3>
I put a stop to any attempt to reconnect in progress.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF INSTANCE VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Instance Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="factor"></a>
<h3>factor</h3>
a multiplicitive factor by which the delay grows
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>float</code>
</dd>
<span title="2.7182818284590451"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
2.7182818284590451 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="initialDelay"></a>
<h3>initialDelay</h3>
Delay for the first reconnection attempt.
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>float</code>
</dd>
<span title="1.0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
1.0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="jitter"></a>
<h3>jitter</h3>
percentage of randomness to introduce into the delay length to prevent
stampeding.
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>float</code>
</dd>
<span title="0.11962656492"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0.11962656492 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="maxDelay"></a>
<h3>maxDelay</h3>
Maximum number of seconds between connection attempts.
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="3600"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
3600 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="_callID"></a>
<h3>_callID</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="connector"></a>
<h3>connector</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="continueTrying"></a>
<h3>continueTrying</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="1"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
1 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="delay"></a>
<h3>delay</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>float</code>
</dd>
<span title="1.0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
1.0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="maxRetries"></a>
<h3>maxRetries</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="retries"></a>
<h3>retries</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:23 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>