/****************************************************************************************
 * Copyright (c) 2006 Trolltech ASA <copyright@trolltech.com>                           *
 *                                                                                      *
 * This program is free software; you can redistribute it and/or modify it under        *
 * the terms of the GNU General Public License as published by the Free Software        *
 * Foundation; either version 2 of the License, or (at your option) any later           *
 * version.                                                                             *
 *                                                                                      *
 * This program 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/>.                           *
 ****************************************************************************************/

/*
 * This file was generated by dbusxml2cpp version 0.6
 * Command line was: dbusxml2cpp -v -i strigitypes.h -p XesamDbus XesamInterface.xml
 *
 * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef XESAMDBUS_H_1183461064
#define XESAMDBUS_H_1183461064

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>
#include <strigi/qtdbus/strigitypes.h>

/*
 * Proxy class for interface org.freedesktop.DBus.Introspectable
 */
class OrgFreedesktopDBusIntrospectableInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.freedesktop.DBus.Introspectable"; }

public:
    OrgFreedesktopDBusIntrospectableInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);

    ~OrgFreedesktopDBusIntrospectableInterface();

public Q_SLOTS: // METHODS
    inline QDBusReply<QString> Introspect()
    {
        QList<QVariant> argumentList;
        return callWithArgumentList(QDBus::Block, QLatin1String("Introspect"), argumentList);
    }

Q_SIGNALS: // SIGNALS
};

/*
 * Proxy class for interface org.freedesktop.xesam.search
 */
class OrgFreedesktopXesamSearchInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.freedesktop.xesam.Search"; }

public:
    OrgFreedesktopXesamSearchInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);

    ~OrgFreedesktopXesamSearchInterface();

public Q_SLOTS: // METHODS
    inline QDBusReply<void> CloseSearch(const QString &search)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(search);
        return callWithArgumentList(QDBus::Block, QLatin1String("CloseSearch"), argumentList);
    }

    inline QDBusReply<void> CloseSession(const QString &session)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(session);
        return callWithArgumentList(QDBus::Block, QLatin1String("CloseSession"), argumentList);
    }

    inline QDBusReply<int> CountHits(const QString &search)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(search);
        return callWithArgumentList(QDBus::Block, QLatin1String("CountHits"), argumentList);
    }

    inline QDBusReply<QVector<QList<QVariant> > > GetHitData(const QString &search, const QList<int> &hit_ids, const QStringList &properties)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(search) << qVariantFromValue(hit_ids) << qVariantFromValue(properties);
        return callWithArgumentList(QDBus::Block, QLatin1String("GetHitData"), argumentList);
    }

    inline QDBusReply<QVector<QList<QVariant> > > GetHits(const QString &search, int num)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(search) << qVariantFromValue(num);
        return callWithArgumentList(QDBus::Block, QLatin1String("GetHits"), argumentList);
    }

    inline QDBusReply<QDBusVariant> GetProperty(const QString &session, const QString &prop)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(session) << qVariantFromValue(prop);
        return callWithArgumentList(QDBus::Block, QLatin1String("GetProperty"), argumentList);
    }

    inline QDBusReply<QStringList> GetState()
    {
        QList<QVariant> argumentList;
        return callWithArgumentList(QDBus::Block, QLatin1String("GetState"), argumentList);
    }

    inline QDBusReply<QString> NewSearch(const QString &session, const QString &query_xml)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(session) << qVariantFromValue(query_xml);
        return callWithArgumentList(QDBus::Block, QLatin1String("NewSearch"), argumentList);
    }

    inline QDBusReply<QString> NewSession()
    {
        QList<QVariant> argumentList;
        return callWithArgumentList(QDBus::Block, QLatin1String("NewSession"), argumentList);
    }

    inline QDBusReply<QDBusVariant> SetProperty(const QString &session, const QString &prop, const QDBusVariant &v)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(session) << qVariantFromValue(prop) << qVariantFromValue(v);
        return callWithArgumentList(QDBus::Block, QLatin1String("SetProperty"), argumentList);
    }

    inline QDBusReply<void> StartSearch(const QString &search)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(search);
        return callWithArgumentList(QDBus::Block, QLatin1String("StartSearch"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void HitsAdded(const QString &search, int count);
    void HitsModified(const QString &search, const QList<int> &hit_ids);
    void HitsRemoved(const QString &search, const QList<int> &hit_ids);
};

namespace org {
  namespace freedesktop {
    namespace DBus {
      typedef ::OrgFreedesktopDBusIntrospectableInterface Introspectable;
    }
    namespace xesam {
      typedef ::OrgFreedesktopXesamSearchInterface search;
    }
  }
}
#endif
