KDE 4.5 PyKDE API Reference
  • KDE's Python API
  • Overview
  • PyKDE Home
  • Sitemap
  • Contact Us
 

Observer Class Reference

from PyKDE4.akonadi import *

Namespace: Akonadi.AgentBase

Detailed Description

The interface for reacting on monitored or replayed changes.

The Observer provides an interface to react on monitored or replayed changes.

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.

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.

The observer implementation then has registered with the agent, so it can forward the incoming changes to the observer.

Note:
In the multiple inheritance approach the init() method automatically registers itself as the observer.

Example for stand-alone observer:

 class ExampleAgent : public AgentBase
 {
   public:
     ExampleAgent( const QString &id );

     ~ExampleAgent();

   private:
     AgentBase.Observer *mObserver;
 };

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

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

 ExampleAgent.~ExampleAgent()
 {
   delete mObserver;
 }

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

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

Example for observer through multiple inheritance:

 class ExampleAgent : public AgentBase, public AgentBase.Observer
 {
   public:
     ExampleAgent( const QString &id );

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

 ExampleAgent.ExampleAgent( const QString &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 &item )
 {
   // do something with item
   kDebug() << "Item id=" << item.id();

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

Author:
Kevin Krammer <kevin.krammer@gmx.at>

Deprecated:
Use ObserverV2 instead


Methods

 __init__ (self)
 collectionAdded (self, Akonadi.Collection collection, Akonadi.Collection parent)
 collectionChanged (self, Akonadi.Collection collection)
 collectionRemoved (self, Akonadi.Collection collection)
 itemAdded (self, Akonadi.Item item, Akonadi.Collection collection)
 itemChanged (self, Akonadi.Item item, QSet partIdentifiers)
 itemRemoved (self, Akonadi.Item item)

Method Documentation

__init__ (   self )

Creates an observer instance.

collectionAdded (  self,
Akonadi.Collection  collection,
Akonadi.Collection  parent
)

Reimplement to handle adding of new collections.

Parameters:
collection  The newly added collection.
parent  The parent collection.

collectionChanged (  self,
Akonadi.Collection  collection
)

Reimplement to handle changes to existing collections.

Parameters:
collection  The changed collection.

collectionRemoved (  self,
Akonadi.Collection  collection
)

Reimplement to handle deletion of collections.

Parameters:
collection  The deleted collection.

itemAdded (  self,
Akonadi.Item  item,
Akonadi.Collection  collection
)

Reimplement to handle adding of new items.

Parameters:
item  The newly added item.
collection  The collection item got added to.

itemChanged (  self,
Akonadi.Item  item,
QSet  partIdentifiers
)

Reimplement to handle changes to existing items.

Parameters:
item  The changed item.
partIdentifiers  The identifiers of the item parts that has been changed.

itemRemoved (  self,
Akonadi.Item  item
)

Reimplement to handle deletion of items.

Parameters:
item  The deleted item.

  • Full Index

Modules

  • akonadi
  • dnssd
  • kdecore
  • kdeui
  • khtml
  • kio
  • knewstuff
  • kparts
  • kutils
  • nepomuk
  • phonon
  • plasma
  • polkitqt
  • solid
  • soprano
This documentation is maintained by Simon Edwards.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal