twisted.python.components.Componentized.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.python.components.Componentized</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.python.html">Package python</a> ::
<a href="twisted.python.components.html">Module components</a> ::
Class Componentized
</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.python.components.Componentized.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class Componentized</h2>
<pre class="base-tree">
<a href="twisted.persisted.styles.Versioned.html"><code>Versioned</code></a> --+
|
<b>Componentized</b>
</pre><br />
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.web.woven.guard.GuardSession.html"><code>GuardSession</code></a>,
<a href="twisted.manhole.ui.gtk2manhole.ManholeWindow.html"><code>ManholeWindow</code></a>,
<a href="twisted.web.static.Registry.html"><code>Registry</code></a>,
<a href="twisted.python.components.ReprableComponentized.html"><code>ReprableComponentized</code></a>,
<a href="twisted.web.server.Request.html"><code>Request</code></a>,
<a href="twisted.web.server.Session.html"><code>Session</code></a></dd></dl>
<hr/>
<p>I am a mixin to allow you to be adapted in various ways
persistently.</p>
<p>I define a list of persistent adapters. This is to allow adapter
classes to store system-specific state, and initialized on demand. The
getComponent method implements this. You must also register adapters for
this class for the interfaces that you wish to pass to getComponent.</p>
Many other classes and utilities listed here are present in Zope3;
this one is specific to Twisted.
<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><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</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.python.components.Componentized.html#addAdapter" class="summary-sig-name"><code>addAdapter</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>adapterClass</span>,
<span class=summary-sig-arg>ignoreClass</span>,
<span class=summary-sig-arg>registry</span>)</span></code>
<br />
Utility method that calls addComponent.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.python.components.Componentized.html#addComponent" class="summary-sig-name"><code>addComponent</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>component</span>,
<span class=summary-sig-arg>ignoreClass</span>,
<span class=summary-sig-arg>registry</span>)</span></code>
<br />
Add a component to me, for all appropriate interfaces.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.python.components.Componentized.html#getComponent" class="summary-sig-name"><code>getComponent</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>interface</span>,
<span class=summary-sig-arg>registry</span>,
<span class=summary-sig-arg>default</span>)</span></code>
<br />
Create or retrieve an adapter for the given interface.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="locateAdapterClass"></a><span class="summary-sig"><span class="summary-sig-name">locateAdapterClass</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>klass</span>,
<span class=summary-sig-arg>interfaceClass</span>,
<span class=summary-sig-arg>default</span>,
<span class=summary-sig-arg>registry</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.python.components.Componentized.html#removeComponent" class="summary-sig-name"><code>removeComponent</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>component</span>)</span></code>
<br />
Remove the given component from me entirely, for all interfaces for
which it has been registered.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="setAdapter"></a><span class="summary-sig"><span class="summary-sig-name">setAdapter</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>interfaceClass</span>,
<span class=summary-sig-arg>adapterClass</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="setComponent"></a><span class="summary-sig"><span class="summary-sig-name">setComponent</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>interfaceClass</span>,
<span class=summary-sig-arg>component</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.python.components.Componentized.html#unsetComponent" class="summary-sig-name"><code>unsetComponent</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>interfaceClass</span>)</span></code>
<br />
Remove my component specified by the given interface class.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="upgradeToVersion1"></a><span class="summary-sig"><span class="summary-sig-name">upgradeToVersion1</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Versioned</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.persisted.styles.Versioned.html#__getstate__" class="summary-sig-name"><code>__getstate__</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>dict</span>)</span></code>
<br />
Get state, adding a version number to it on its way out.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.persisted.styles.Versioned.html#__setstate__" class="summary-sig-name"><code>__setstate__</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>state</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.persisted.styles.Versioned.html#versionUpgrade" class="summary-sig-name"><code>versionUpgrade</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
(internal) Do a version upgrade.</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>int</code></font></td>
<td><b><a href="twisted.python.components.Componentized.html#persistenceVersion"><code>persistenceVersion</code></a></b> = <span title="1">1 </span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Versioned</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.persisted.styles.Versioned.html#persistenceForgets"><code>persistenceForgets</code></a></b> = <span title="()"><code>() </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="addAdapter"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">addAdapter</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>adapterClass</span>,
<span class=sig-arg>ignoreClass</span>=<span class=sig-default>0</span>,
<span class=sig-arg>registry</span>=<span class=sig-default>None</span>)</span>
</h3>
Utility method that calls addComponent. I take an adapter class and
instantiate it with myself as the first argument.
<dl><dt></dt><dd>
<dl><dt><b>Returns:</b></dt>
<dd>
The adapter instantiated.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="addComponent"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">addComponent</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>component</span>,
<span class=sig-arg>ignoreClass</span>=<span class=sig-default>0</span>,
<span class=sig-arg>registry</span>=<span class=sig-default>None</span>)</span>
</h3>
<p>Add a component to me, for all appropriate interfaces.</p>
<p>In order to determine which interfaces are appropriate, the
component's __implements__ attribute will be scanned.</p>
<p>If the argument 'ignoreClass' is True, then all interfaces are
considered appropriate.</p>
Otherwise, an 'appropriate' interface is one for which its class has
been registered as an adapter for my class according to the rules of
getComponent.
<dl><dt></dt><dd>
<dl><dt><b>Returns:</b></dt>
<dd>
the list of appropriate interfaces
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="getComponent"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getComponent</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>interface</span>,
<span class=sig-arg>registry</span>=<span class=sig-default>None</span>,
<span class=sig-arg>default</span>=<span class=sig-default>None</span>)</span>
</h3>
<p>Create or retrieve an adapter for the given interface.</p>
<p>If such an adapter has already been created, retrieve it from the
cache that this instance keeps of all its adapters. Adapters created
through this mechanism may safely store system-specific state.</p>
<p>If you want to register an adapter that will be created through
getComponent, but you don't require (or don't want) your adapter to be
cached and kept alive for the lifetime of this Componentized object,
set the attribute 'temporaryAdapter' to True on your adapter class.</p>
If you want to automatically register an adapter for all appropriate
interfaces (with addComponent), set the attribute 'multiComponent' to
True on your adapter class.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="removeComponent"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">removeComponent</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>component</span>)</span>
</h3>
Remove the given component from me entirely, for all interfaces for
which it has been registered.
<dl><dt></dt><dd>
<dl><dt><b>Returns:</b></dt>
<dd>
a list of the interfaces that were removed.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="unsetComponent"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">unsetComponent</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>interfaceClass</span>)</span>
</h3>
Remove my component specified by the given interface class.
<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="persistenceVersion"></a>
<h3>persistenceVersion</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>
<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:10 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>