//
//     Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace Akonadi
{

class Monitor : QObject
{
%TypeHeaderCode
#include <akonadi/monitor.h>
%End


public:
    explicit                Monitor (QObject* parent /TransferThis/ = 0);
    void                    setCollectionMonitored (const Akonadi::Collection& collection, bool monitored = 1);
    void                    setItemMonitored (const Akonadi::Item& item, bool monitored = 1);
    void                    setResourceMonitored (const QByteArray& resource, bool monitored = 1);
    void                    setMimeTypeMonitored (const QString& mimetype, bool monitored = 1);
    void                    setAllMonitored (bool monitored = 1);
    void                    ignoreSession (Akonadi::Session* session);
    void                    fetchCollection (bool enable);
    void                    fetchCollectionStatistics (bool enable);
    void                    setItemFetchScope (const Akonadi::ItemFetchScope& fetchScope);
    Akonadi::ItemFetchScope&  itemFetchScope ();
    Akonadi::Collection::List  collectionsMonitored () const;
    QList<Akonadi::Entity::Id>  itemsMonitored () const;
    QStringList             mimeTypesMonitored () const;
    QList<QByteArray>       resourcesMonitored () const;
    bool                    isAllMonitored () const;

signals:
    void                    itemChanged (const Akonadi::Item& item, const QSet<QByteArray>& partIdentifiers);
    void                    itemMoved (const Akonadi::Item& item, const Akonadi::Collection& collectionSource, const Akonadi::Collection& collectionDestination);
    void                    itemAdded (const Akonadi::Item& item, const Akonadi::Collection& collection);
    void                    itemRemoved (const Akonadi::Item& item);
    void                    itemLinked (const Akonadi::Item& item, const Akonadi::Collection& collection);
    void                    itemUnlinked (const Akonadi::Item& item, const Akonadi::Collection& collection);
    void                    collectionAdded (const Akonadi::Collection& collection, const Akonadi::Collection& parent);
    void                    collectionChanged (const Akonadi::Collection& collection);
    void                    collectionRemoved (const Akonadi::Collection& collection);
    void                    collectionMonitored (const Akonadi::Collection& collection, bool monitored);
    void                    itemMonitored (const Akonadi::Item& item, bool monitored);
    void                    resourceMonitored (const QByteArray& identifier, bool monitored);
    void                    mimeTypeMonitored (const QString& mimeType, bool monitored);
    void                    allMonitored (bool monitored);

protected:
//ig    explicit                Monitor (MonitorPrivate* d, QObject* parent /TransferThis/ = 0);
public:
    virtual ~Monitor ();
    void                    setCollectionFetchScope (const Akonadi::CollectionFetchScope& fetchScope);
    Akonadi::CollectionFetchScope&  collectionFetchScope ();
signals:
    void                    collectionChanged (const Akonadi::Collection& collection, const QSet<QByteArray>& attributeNames);
    void                    collectionMoved (const Akonadi::Collection& collection, const Akonadi::Collection& source, const Akonadi::Collection& destination);
//force
    void                    collectionStatisticsChanged (Akonadi::Entity::Id id, const Akonadi::CollectionStatistics& statistics);
//end
//ig    void                    collectionStatisticsChanged (Akonadi::Collection::Id id, const Akonadi::CollectionStatistics& statistics);
public:
    void                    setSession (Akonadi::Session* session);
    Akonadi::Session*       session () const;
//FIXME
    QVector<Akonadi::Entity::Id>  itemsMonitoredEx () const;
//ig    QVector<Akonadi::Item::Id>  itemsMonitoredEx () const;
signals:
    void                    collectionSubscribed (const Akonadi::Collection& collection, const Akonadi::Collection& parent);
    void                    collectionUnsubscribed (const Akonadi::Collection& collection);
public:
    void                    fetchChangedOnly (bool enable);
};
// Monitor

};
// Akonadi


