twisted.spread.flavors.Cacheable.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.spread.flavors.Cacheable</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.spread.html">Package spread</a> ::
<a href="twisted.spread.flavors.html">Module flavors</a> ::
Class Cacheable
</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.spread.flavors.Cacheable.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class Cacheable</h2>
<pre class="base-tree">
<a href="twisted.spread.jelly.Jellyable.html"><code>Jellyable</code></a> --+
|
<a href="twisted.spread.flavors.Serializable.html"><code>Serializable</code></a> --+
|
<a href="twisted.spread.flavors.Copyable.html"><code>Copyable</code></a> --+
|
<b>Cacheable</b>
</pre><br />
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.manhole.explorer.Explorer.html"><code>Explorer</code></a>,
<a href="twisted.spread.publish.Publishable.html"><code>Publishable</code></a></dd></dl>
<hr/>
<p>A cached instance.</p>
<p>This means that it's copied; but there is some logic to make sure that
it's only copied once. Additionally, when state is retrieved, it is
passed a "proto-reference" to the state as it will exist on the
client.</p>
XXX: The documentation for this class needs work, but it's the most
complex part of PB and it is inherently difficult to explain.
<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.spread.flavors.Cacheable.html#getStateToCacheAndObserveFor" class="summary-sig-name"><code>getStateToCacheAndObserveFor</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>perspective</span>,
<span class=summary-sig-arg>observer</span>)</span></code>
<br />
Get state to cache on the client and client-cache reference to observe
locally.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Cacheable.html#jellyFor" class="summary-sig-name"><code>jellyFor</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>jellier</span>)</span></code>
<br />
Return an appropriate tuple to serialize me.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Cacheable.html#stoppedObserving" class="summary-sig-name"><code>stoppedObserving</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>perspective</span>,
<span class=summary-sig-arg>observer</span>)</span></code>
<br />
This method is called when a client has stopped observing me.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Copyable</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Copyable.html#getStateToCopy" class="summary-sig-name"><code>getStateToCopy</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Gather state to send when I am serialized for a peer.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Copyable.html#getStateToCopyFor" class="summary-sig-name"><code>getStateToCopyFor</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>perspective</span>)</span></code>
<br />
Gather state to send when I am serialized for a particular
perspective.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Copyable.html#getTypeToCopy" class="summary-sig-name"><code>getTypeToCopy</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Determine what type tag to send for me.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Copyable.html#getTypeToCopyFor" class="summary-sig-name"><code>getTypeToCopyFor</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>perspective</span>)</span></code>
<br />
Determine what type tag to send for me.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Serializable</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.flavors.Serializable.html#processUniqueID" class="summary-sig-name"><code>processUniqueID</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Return an ID which uniquely represents this object for this
process.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Jellyable</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.jelly.Jellyable.html#getStateFor" class="summary-sig-name"><code>getStateFor</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>jellier</span>)</span></code>
</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 bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Jellyable</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.spread.jelly.Jellyable.html#__implements__"><code>__implements__</code></a></b> = <span title="(<class twisted.spread.interfaces.IJellyable at 0x840e324>,)"><code>(<class twisted.spread.interfaces.IJell<span class="variable-ellipsis">...</span></code>
</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="getStateToCacheAndObserveFor"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getStateToCacheAndObserveFor</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>perspective</span>,
<span class=sig-arg>observer</span>)</span>
</h3>
<p>Get state to cache on the client and client-cache reference to
observe locally.</p>
This is similiar to getStateToCopyFor, but it additionally passes in
a reference to the client-side RemoteCache instance that will be
created when it is unserialized. This allows Cacheable instances to
keep their RemoteCaches up to date when they change, such that no
changes can occur between the point at which the state is initially
copied and the client receives it that are not propogated.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="jellyFor"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">jellyFor</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>jellier</span>)</span>
</h3>
<p>Return an appropriate tuple to serialize me.</p>
Depending on whether this broker has cached me or not, this may
return either a full state or a reference to an existing cache.
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.spread.flavors.Copyable.html#jellyFor"><code>twisted.spread.flavors.Copyable.jellyFor</code></a></dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="stoppedObserving"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">stoppedObserving</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>perspective</span>,
<span class=sig-arg>observer</span>)</span>
</h3>
<p>This method is called when a client has stopped observing me.</p>
The 'observer' argument is the same as that passed in to
getStateToCacheAndObserveFor.
<dl><dt></dt><dd>
</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:13 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>