twisted.spread.jelly._Jellier.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.jelly._Jellier</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">&nbsp;&nbsp;&nbsp;<a class="navbar" href="twisted.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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&nbsp;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&nbsp;twisted</a> ::
        <a href="twisted.spread.html">Package&nbsp;spread</a> ::
        <a href="twisted.spread.jelly.html">Module&nbsp;jelly</a> ::
        Class&nbsp;_Jellier
      </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>&nbsp;|&nbsp;<a href="twisted.spread.jelly._Jellier.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
    </table></td>
</tr></table>

<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class _Jellier</h2>

<hr/>

(Internal) This class manages state for a call to jelly()
<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">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.spread.jelly._Jellier.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>taster</span>,
          <span class=summary-sig-arg>persistentStore</span>,
          <span class=summary-sig-arg>invoker</span>)</span></code>
<br />
Initialize.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="_checkMutable"></a><span class="summary-sig"><span class="summary-sig-name">_checkMutable</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>obj</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.spread.jelly._Jellier.html#_cook" class="summary-sig-name"><code>_cook</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>object</span>)</span></code>
<br />
(internal)</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><a name="jelly"></a><span class="summary-sig"><span class="summary-sig-name">jelly</span>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>obj</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.spread.jelly._Jellier.html#prepare" class="summary-sig-name"><code>prepare</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>object</span>)</span></code>
<br />
(internal) create a list for persisting an object to.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.spread.jelly._Jellier.html#preserve" class="summary-sig-name"><code>preserve</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>object</span>,
          <span class=summary-sig-arg>sexp</span>)</span></code>
<br />
(internal) mark an object's persistent list for later referral</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
  <td><code><span class="summary-sig"><a href="twisted.spread.jelly._Jellier.html#unpersistable" class="summary-sig-name"><code>unpersistable</code></a>(<span class=summary-sig-arg>self</span>,
          <span class=summary-sig-arg>reason</span>,
          <span class=summary-sig-arg>sxp</span>)</span></code>
<br />
(internal) Returns an sexp: (unpersistable &quot;reason&quot;).</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>dict</code></font></td>
<td><b><a href="twisted.spread.jelly._Jellier.html#constantTypes"><code>constantTypes</code></a></b> = <span title="{&lt;type 'str'&gt;: 1, &lt;type 'int'&gt;: 1, &lt;type 'float'&gt;: 1, &lt;type 'long'&gt;: 1}"><code>{&lt;type&nbsp;'str'&gt;:&nbsp;1,&nbsp;&lt;type&nbsp;'int'&gt;:&nbsp;1,&nbsp;&lt;type<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="__init__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>taster</span>,
          <span class=sig-arg>persistentStore</span>,
          <span class=sig-arg>invoker</span>)</span>
    <br /><i>(Constructor)</i>
  </h3>
  Initialize.
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="_cook"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">_cook</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>object</span>)</span>
  </h3>
  <p>(internal)</p>
  <p>backreference an object.</p>
  <p>Notes on this method for the hapless future maintainer: If I've 
  already gone through the prepare/preserve cycle on the specified object 
  (it is being referenced after the serializer is &quot;done with&quot; 
  it, e.g. this reference is NOT circular), the copy-in-place of aList is 
  relevant, since the list being modified is the actual, pre-existing 
  jelly expression that was returned for that object. If not, it's 
  technically superfluous, since the value in self.preserved didn't need 
  to be set, but the invariant that self.preserved[id(object)] is a list 
  is convenient because that means we don't have to test and create it or 
  not create it here, creating fewer code-paths. that's why 
  self.preserved is always set to a list.</p>
  Sorry that this code is so hard to follow, but Python objects are 
  tricky to persist correctly. -glyph
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="prepare"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">prepare</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>object</span>)</span>
  </h3>
  <p>(internal) create a list for persisting an object to. this will 
  allow backreferences to be made internal to the object. (circular 
  references).</p>
  The reason this needs to happen is that we don't generate an ID for 
  every object, so we won't necessarily know which ID the object will 
  have in the future. When it is 'cooked' ( see _cook ), it will be 
  assigned an ID, and the temporary placeholder list created here will be 
  modified in-place to create an expression that gives this object an ID: 
  [reference id# [object-jelly]].
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="preserve"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">preserve</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>object</span>,
          <span class=sig-arg>sexp</span>)</span>
  </h3>
  (internal) mark an object's persistent list for later referral
  <dl><dt></dt><dd>
  </dd></dl>
</td></tr></table>

<a name="unpersistable"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
  <h3><span class="sig"><span class="sig-name">unpersistable</span>(<span class=sig-arg>self</span>,
          <span class=sig-arg>reason</span>,
          <span class=sig-arg>sxp</span>=<span class=sig-default>None</span>)</span>
  </h3>
  (internal) Returns an sexp: (unpersistable &quot;reason&quot;). 
  Utility method for making note that a particular object could not be 
  serialized.
  <dl><dt></dt><dd>
  </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="constantTypes"></a>
<h3>constantTypes</h3>
<dl>
  <dt></dt>
  <dd>
    <dl>
      <dt><b>Type:</b></dt>
      <dd>
          <code>dict</code>

      </dd>
<span title="{&lt;type 'str'&gt;: 1, &lt;type 'int'&gt;: 1, &lt;type 'float'&gt;: 1, &lt;type 'long'&gt;: 1}">      <dt><b>Value:</b></dt>
      <dd><table><tr><td>
<pre class="variable">
{&lt;type 'str'&gt;: 1, &lt;type 'int'&gt;: 1, &lt;type 'float'&gt;: 1, &lt;type 'long'&gt;: 1<span class="variable-linewrap">\</span>
}                                                                      </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">&nbsp;&nbsp;&nbsp;<a class="navbar" href="twisted.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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&nbsp;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:34 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>