Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > b77dda48f87d4eda8cc559e40c49a652 > files > 8

python-kde4-doc-4.4.5-0.2mdv2010.2.i586.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
  <title>Akonadi.AgentBase.Observer</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <link rel="stylesheet" type="text/css" href="../common/doxygen.css" />
  <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="../common/kde.css" />
</head>
<body>
<div id="container">
<div id="header">
  <div id="header_top">
    <div>
      <div>
        <img alt ="" src="../common/top-kde.jpg"/>
        KDE 4.4 PyKDE API Reference
      </div>
    </div>
  </div>
  <div id="header_bottom">
    <div id="location">
      <ul>
        <li>KDE's Python API</li>
      </ul>
    </div>

    <div id="menu">
      <ul>
        <li><a href="../modules.html">Overview</a></li>
<li><a href="http://techbase.kde.org/Development/Languages/Python">PyKDE Home</a></li>
<li><a href="http://kde.org/family/">Sitemap</a></li>
<li><a href="http://kde.org/contact/">Contact Us</a></li>
</ul>
    </div>
  </div>
</div>

<div id="body_wrapper">
<div id="body">
<div id="right">
<div class="content">
<div id="main">
<div class="clearer">&nbsp;</div>

<h1>Observer Class Reference</h1>
<code>from PyKDE4.akonadi import *</code>
<p>


Namespace: Akonadi.AgentBase.Observer<br />
<h2>Detailed Description</h2>

<p>The interface for reacting on monitored or replayed changes.
</p>
<p>
The Observer provides an interface to react on monitored or replayed changes.
</p>
<p>
Since the this base class does only tell the change recorder that the change
has been processed, an AgentBase subclass which wants to actually process
the change needs to subclass Observer and reimplement the methods it is
interested in.
</p>
<p>
Such an agent specific Observer implementation can either be done
stand-alone, i.e. as a separate object, or by inheriting both AgentBase
and AgentBase.Observer.
</p>
<p>
The observer implementation then has registered with the agent, so it
can forward the incoming changes to the observer.
</p>
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd> In the multiple inheritance approach the init() method automatically
registers itself as the observer.
</dd></dl> </p>
<p>
Example for stand-alone observer:
<pre class="fragment">
 class ExampleAgent : public AgentBase
 {
   public:
     ExampleAgent( const QString &amp;id );

     ~ExampleAgent();

   private:
     AgentBase.Observer *mObserver;
 };

 class ExampleObserver : public AgentBase.Observer
 {
   protected:
     void itemChanged( const Item &amp;item );
 };

 ExampleAgent.ExampleAgent( const QString &amp;id )
   : AgentBase( id ), mObserver( 0 )
 {
   mObserver = new ExampleObserver();
   registerObserver( mObserver );
 }

 ExampleAgent.~ExampleAgent()
 {
   delete mObserver;
 }

 void ExampleObserver.itemChanged( const Item &amp;item )
 {
   // do something with item
   kDebug() &lt;&lt; "Item id=" &lt;&lt; item.id();

   // let base implementation tell the change recorder that we
   // have processed the change
   AgentBase.Observer.itemChanged( item );
 }
</pre>
</p>
<p>
Example for observer through multiple inheritance:
<pre class="fragment">
 class ExampleAgent : public AgentBase, public AgentBase.Observer
 {
   public:
     ExampleAgent( const QString &amp;id );

   protected:
     void itemChanged( const Item &amp;item );
 };

 ExampleAgent.ExampleAgent( const QString &amp;id )
   : AgentBase( id )
 {
   // no need to create or register observer since
   // we are the observer and registration happens automatically
   // in init()
 }

 void ExampleAgent.itemChanged( const Item &amp;item )
 {
   // do something with item
   kDebug() &lt;&lt; "Item id=" &lt;&lt; item.id();

   // let base implementation tell the change recorder that we
   // have processed the change
   AgentBase.Observer.itemChanged( item );
 }
</pre>
</p>
<p>

<dl class="author" compact><dt><b>Author:</b></dt><dd> Kevin Krammer &lt;kevin.krammer@gmx.at&gt; </dd></dl>
</p>
<p>
<dl class="deprecated" compact><dt><b>Deprecated:</b></dt><dd> Use ObserverV2 instead
</dd></dl>
</p>
<table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Methods</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#Observer">__init__</a> (self)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#collectionAdded">collectionAdded</a> (self, <a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a> collection, <a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a> parent)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#collectionChanged">collectionChanged</a> (self, <a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a> collection)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#collectionRemoved">collectionRemoved</a> (self, <a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a> collection)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#itemAdded">itemAdded</a> (self, <a href="../akonadi/Akonadi.Item.html">Akonadi.Item</a> item, <a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a> collection)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#itemChanged">itemChanged</a> (self, <a href="../akonadi/Akonadi.Item.html">Akonadi.Item</a> item, QSet<QByteArray> partIdentifiers)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="#itemRemoved">itemRemoved</a> (self, <a href="../akonadi/Akonadi.Item.html">Akonadi.Item</a> item)</td></tr>
</table>
<hr><h2>Method Documentation</h2><a class="anchor" name="Observer"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname">__init__</td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"><em>self</em>&nbsp;)</td>
<td width="100%"> </td>
</tr>
</table>
</div>
<div class="memdoc"><p>Creates an observer instance.
</p></div></div><a class="anchor" name="collectionAdded"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> collectionAdded</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a>&nbsp;</td>
<td class="paramname"><em>collection</em>, </td>
</tr>
<tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a>&nbsp;</td>
<td class="paramname"><em>parent</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Reimplement to handle adding of new collections.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>collection</em>&nbsp;</td><td> The newly added collection.

<tr><td></td><td valign="top"><em>parent</em>&nbsp;</td><td> The parent collection.
</td></tr>
</table></dl>
<p>
</p></div></div><a class="anchor" name="collectionChanged"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> collectionChanged</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a>&nbsp;</td>
<td class="paramname"><em>collection</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Reimplement to handle changes to existing collections.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>collection</em>&nbsp;</td><td> The changed collection.
</td></tr>
</table></dl>
<p>
</p></div></div><a class="anchor" name="collectionRemoved"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> collectionRemoved</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a>&nbsp;</td>
<td class="paramname"><em>collection</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Reimplement to handle deletion of collections.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>collection</em>&nbsp;</td><td> The deleted collection.
</td></tr>
</table></dl>
<p>
</p></div></div><a class="anchor" name="itemAdded"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> itemAdded</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Item.html">Akonadi.Item</a>&nbsp;</td>
<td class="paramname"><em>item</em>, </td>
</tr>
<tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Collection.html">Akonadi.Collection</a>&nbsp;</td>
<td class="paramname"><em>collection</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Reimplement to handle adding of new items.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>item</em>&nbsp;</td><td> The newly added item.

<tr><td></td><td valign="top"><em>collection</em>&nbsp;</td><td> The collection <b>item</b> got added to.
</td></tr>
</table></dl>
<p>
</p></div></div><a class="anchor" name="itemChanged"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> itemChanged</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Item.html">Akonadi.Item</a>&nbsp;</td>
<td class="paramname"><em>item</em>, </td>
</tr>
<tr>
<td class="memname"></td>
<td></td>
<td class="paramtype">QSet<QByteArray>&nbsp;</td>
<td class="paramname"><em>partIdentifiers</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Reimplement to handle changes to existing items.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>item</em>&nbsp;</td><td> The changed item.

<tr><td></td><td valign="top"><em>partIdentifiers</em>&nbsp;</td><td> The identifiers of the item parts that has been changed.
</td></tr>
</table></dl>
<p>
</p></div></div><a class="anchor" name="itemRemoved"></a>
<div class="memitem">
<div class="memproto">
<table class="memname"><tr>
<td class="memname"> itemRemoved</td>
<td>(</td>
<td class="paramtype">&nbsp;<em>self</em>, </td>
<td class="paramname"></td>
</tr><tr>
<td class="memname"></td>
<td></td>
<td class="paramtype"><a href="../akonadi/Akonadi.Item.html">Akonadi.Item</a>&nbsp;</td>
<td class="paramname"><em>item</em></td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td>
<td></td>
<td width="100%"> </td>
</tr></table>
</div>
<div class="memdoc"><p>Reimplement to handle deletion of items.
</p><dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td></td><td valign="top"><em>item</em>&nbsp;</td><td> The deleted item.
</td></tr>
</table></dl>
<p>
</p></div></div>
</div>
</div>
</div>

<div id="left">

<div class="menu_box">
<div class="nav_list">
<ul>
<li><a href="../allclasses.html">Full Index</a></li>
</ul>
</div>

<a name="cp-menu" /><div class="menutitle"><div>
  <h2 id="cp-menu-project">Modules</h2>
</div></div>
<div class="nav_list">
<ul><li><a href="../akonadi/index.html">akonadi</a></li>
<li><a href="../dnssd/index.html">dnssd</a></li>
<li><a href="../kdecore/index.html">kdecore</a></li>
<li><a href="../kdeui/index.html">kdeui</a></li>
<li><a href="../khtml/index.html">khtml</a></li>
<li><a href="../kio/index.html">kio</a></li>
<li><a href="../knewstuff/index.html">knewstuff</a></li>
<li><a href="../kparts/index.html">kparts</a></li>
<li><a href="../kutils/index.html">kutils</a></li>
<li><a href="../nepomuk/index.html">nepomuk</a></li>
<li><a href="../phonon/index.html">phonon</a></li>
<li><a href="../plasma/index.html">plasma</a></li>
<li><a href="../polkitqt/index.html">polkitqt</a></li>
<li><a href="../solid/index.html">solid</a></li>
<li><a href="../soprano/index.html">soprano</a></li>
</ul></div></div>

</div>

</div>
  <div class="clearer"/>
</div>

<div id="end_body"></div>
</div>
<div id="footer"><div id="footer_text">
This documentation is maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;simon&#64;simonzone&#46;com">Simon Edwards</a>.<br />
        KDE<sup>&#174;</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>&#174;</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
        <a href="http://www.kde.org/contact/impressum.php">Legal</a>
    </div></div>
</body>
</html>