Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > d4db7b5092b5090e91377eb3dd3b8023 > files > 1735

flumotion-0.6.1-2.fc14.x86_64.rpm

<?xml version="1.0" encoding="ascii"?>
<!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>flumotion.common.medium.BaseMedium</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        Package&nbsp;flumotion ::
        <a href="flumotion.common-module.html">Package&nbsp;common</a> ::
        <a href="flumotion.common.medium-module.html">Module&nbsp;medium</a> ::
        Class&nbsp;BaseMedium
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class BaseMedium</h1><p class="nomargin-top"><span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium">source&nbsp;code</a></span></p>
<pre class="base-tree">
 twisted.spread.jelly.Jellyable --+            
                                  |            
twisted.spread.flavors.Serializable --+        
                                      |        
   twisted.spread.flavors.Referenceable --+    
                                          |    
                <a href="flumotion.extern.log.log.Loggable-class.html">extern.log.log.Loggable</a> --+    
                                          |    
                   <a href="flumotion.twisted.pb.Referenceable-class.html">twisted.pb.Referenceable</a> --+
                                              |
                                             <strong class="uidshort">BaseMedium</strong>
</pre>

<dl><dt>Known Subclasses:</dt>
<dd>
      <ul class="subclass-list">
<li><a href="flumotion.common.medium.PingingMedium-class.html">PingingMedium</a></li><li>, <a href="flumotion.component.misc.porter.porterclient.PorterMedium-class.html">component.misc.porter.porterclient.PorterMedium</a></li><li>, <a href="flumotion.job.job.JobMedium-class.html">job.job.JobMedium</a></li>  </ul>
</dd></dl>

<hr />
<p>I am a base interface for PB clients interfacing with PB server-side 
  avatars. Used by admin/worker/component to talk to manager's vishnu, and 
  by job to talk to worker's brain.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="flumotion.common.medium.BaseMedium-class.html#setRemoteReference" class="summary-sig-name">setRemoteReference</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">remoteReference</span>)</span><br />
      Set the given remoteReference as the reference to the server-side 
      avatar.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.setRemoteReference">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="hasRemoteReference"></a><span class="summary-sig-name">hasRemoteReference</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Does the medium have a remote reference to a server-side avatar ?</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.hasRemoteReference">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="flumotion.common.medium.BaseMedium-class.html#callRemoteLogging" class="summary-sig-name">callRemoteLogging</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">level</span>,
        <span class="summary-sig-arg">stackDepth</span>,
        <span class="summary-sig-arg">name</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwargs</span>)</span><br />
      Call the given method with the given arguments remotely on the 
      server-side avatar.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.callRemoteLogging">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="flumotion.common.medium.BaseMedium-class.html#callRemote" class="summary-sig-name">callRemote</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">name</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwargs</span>)</span><br />
      Call the given method with the given arguments remotely on the 
      server-side avatar.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.callRemote">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="flumotion.common.medium.BaseMedium-class.html#getBundledFunction" class="summary-sig-name">getBundledFunction</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">module</span>,
        <span class="summary-sig-arg">function</span>)</span><br />
      Returns the given function in the given module, loading the module 
      from a bundle.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.getBundledFunction">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="flumotion.common.medium.BaseMedium-class.html#runBundledFunction" class="summary-sig-name">runBundledFunction</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">module</span>,
        <span class="summary-sig-arg">function</span>,
        <span class="summary-sig-arg">*args</span>,
        <span class="summary-sig-arg">**kwargs</span>)</span><br />
      Runs the given function in the given module with the given arguments.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.runBundledFunction">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="flumotion.common.medium.BaseMedium-class.html#__provides__" class="summary-sig-name">__provides__</a>(<span class="summary-sig-arg">...</span>)</span><br />
      Special descriptor for class __provides__</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="flumotion.twisted.pb.Referenceable-class.html">twisted.pb.Referenceable</a></code></b>:
      <code><a href="flumotion.twisted.pb.Referenceable-class.html#remoteMessageReceived">remoteMessageReceived</a></code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>twisted.spread.flavors.Referenceable</code></b>:
      <code>jellyFor</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>twisted.spread.flavors.Serializable</code></b>:
      <code>processUniqueID</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>twisted.spread.jelly.Jellyable</code></b>:
      <code>__providedBy__</code>,
      <code>getStateFor</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="flumotion.extern.log.log.Loggable-class.html">extern.log.log.Loggable</a></code></b>:
      <code><a href="flumotion.extern.log.log.Loggable-class.html#debug">debug</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#doLog">doLog</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#error">error</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#info">info</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#log">log</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#logFunction">logFunction</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#logObjectName">logObjectName</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#warning">warning</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#warningFailure">warningFailure</a></code>,
      <code><a href="flumotion.extern.log.log.Loggable-class.html#writeMarker">writeMarker</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="logCategory"></a><span class="summary-name">logCategory</span> = <code title="'basemedium'"><code class="variable-quote">'</code><code class="variable-string">basemedium</code><code class="variable-quote">'</code></code><br />
      Implementors can provide a category to log their messages under.
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">str</span>
    </td><td class="summary">
        <a name="remoteLogName"></a><span class="summary-name">remoteLogName</span> = <code title="'baseavatar'"><code class="variable-quote">'</code><code class="variable-string">baseavatar</code><code class="variable-quote">'</code></code><br />
      name to use to log the other side of the connection
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type"><a href="flumotion.common.bundleclient.BundleLoader-class.html" 
      class="link">flumotion.common.bundleclient.BundleLoader</a></span>
    </td><td class="summary">
        <a name="bundleLoader"></a><span class="summary-name">bundleLoader</span> = <code title="None">None</code><br />
      hash(x)
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a href="flumotion.common.medium.BaseMedium-class.html#__implemented__" class="summary-name">__implemented__</a> = <code title="&lt;implementedBy flumotion.common.medium.BaseMedium&gt;">&lt;implementedBy flumotion.common.medium.BaseM<code class="variable-ellipsis">...</code></code>
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>twisted.spread.flavors.Referenceable</code></b>:
      <code>perspective</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== INSTANCE VARIABLES ==================== -->
<a name="section-InstanceVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type"><code class="link">twisted.spread.pb.RemoteReference</code></span>
    </td><td class="summary">
        <a name="remote"></a><span class="summary-name">remote</span> = <code title="None">None</code><br />
      a remote reference to the server-side object on which 
      perspective_(methodName) methods can be called
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="setRemoteReference"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">setRemoteReference</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">remoteReference</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.setRemoteReference">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Set the given remoteReference as the reference to the server-side 
  avatar.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>remoteReference</code></strong> - <code class="link">twisted.spread.pb.RemoteReference</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="callRemoteLogging"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">callRemoteLogging</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">level</span>,
        <span class="sig-arg">stackDepth</span>,
        <span class="sig-arg">name</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwargs</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.callRemoteLogging">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Call the given method with the given arguments remotely on the 
  server-side avatar.</p>
  <p>Gets serialized to server-side perspective_ methods.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>level</code></strong> (int) - the level we should log at (log.DEBUG, log.INFO, etc)</li>
        <li><strong class="pname"><code>stackDepth</code></strong> (non-positive int) - the number of stack frames to go back to get file and line 
          information, negative or zero.</li>
        <li><strong class="pname"><code>name</code></strong> (str) - name of the remote method</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="callRemote"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">callRemote</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">name</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwargs</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.callRemote">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Call the given method with the given arguments remotely on the 
  server-side avatar.</p>
  <p>Gets serialized to server-side perspective_ methods.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="getBundledFunction"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">getBundledFunction</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">module</span>,
        <span class="sig-arg">function</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.getBundledFunction">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Returns the given function in the given module, loading the module 
  from a bundle.</p>
  <p>If we can't find the bundle for the given module, or if the given 
  module does not contain the requested function, we will raise <a 
  href="flumotion.common.errors.RemoteRunError-class.html" 
  class="link">flumotion.common.errors.RemoteRunError</a> (perhaps a poorly
  chosen error). If importing the module raises an exception, that 
  exception will be passed through unmodified.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>module</code></strong> (str) - module the function lives in</li>
        <li><strong class="pname"><code>function</code></strong> (str) - function to run</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>a callable, the given function in the given module.</dd>
  </dl>
</td></tr></table>
</div>
<a name="runBundledFunction"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">runBundledFunction</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">module</span>,
        <span class="sig-arg">function</span>,
        <span class="sig-arg">*args</span>,
        <span class="sig-arg">**kwargs</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="flumotion.common.medium-pysrc.html#BaseMedium.runBundledFunction">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Runs the given function in the given module with the given 
  arguments.</p>
  <p>This method calls getBundledFunction and then invokes the function. 
  Any error raised by getBundledFunction or by invoking the function will 
  be passed through unmodified.</p>
  <p>Callers that expect to return their result over a PB connection should
  catch nonserializable exceptions so as to prevent nasty backtraces in the
  logs.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>module</code></strong> (str) - module the function lives in</li>
        <li><strong class="pname"><code>function</code></strong> (str) - function to run</li>
    </ul></dd>
    <dt>Returns:</dt>
        <dd>the return value of the given function in the module.</dd>
  </dl>
</td></tr></table>
</div>
<a name="__provides__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__provides__</span>(<span class="sig-arg">...</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </tr></table>
  
  <pre class="literalblock">
Special descriptor for class __provides__

The descriptor caches the implementedBy info, so that
we can get declarations for objects without instance-specific
interfaces a bit quicker.

For example:

  &gt;&gt;&gt; from zope.interface import Interface
  &gt;&gt;&gt; class IFooFactory(Interface):
  ...     pass
  &gt;&gt;&gt; class IFoo(Interface):
  ...     pass
  &gt;&gt;&gt; class C(object):
  ...     implements(IFoo)
  ...     classProvides(IFooFactory)
  &gt;&gt;&gt; [i.getName() for i in C.__provides__]
  ['IFooFactory']

  &gt;&gt;&gt; [i.getName() for i in C().__provides__]
  ['IFoo']

</pre>
  <dl class="fields">
    <dt>Overrides:
        <a href="flumotion.extern.log.log.Loggable-class.html#__provides__">extern.log.log.Loggable.__provides__</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== CLASS VARIABLE DETAILS ==================== -->
<a name="section-ClassVariableDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variable Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariableDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__implemented__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <h3 class="epydoc">__implemented__</h3>
  
  <dl class="fields">
  </dl>
  <dl class="fields">
    <dt>Value:</dt>
      <dd><table><tr><td><pre class="variable">
&lt;implementedBy flumotion.common.medium.BaseMedium&gt;
</pre></td></tr></table>
</dd>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Wed Aug 11 21:33:13 2010
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>