/*
 * This file was generated by dbusxml2cpp version 0.6
 * Command line was: dbusxml2cpp -i QtTelepathy/BaseTypes -p connectionavatarsinterface.h: ../../xml/tp-conn-iface-avatars.xml
 *
 * dbusxml2cpp is Copyright (C) 2006 Trolltech AS. All rights reserved.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef CONNECTIONAVATARSINTERFACE_H_1159380630
#define CONNECTIONAVATARSINTERFACE_H_1159380630

#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 "QtTelepathy/Common/BaseTypes"

/*
 * Proxy class for interface org.freedesktop.Telepathy.Connection.Interface.Avatars
 */
class OrgFreedesktopTelepathyConnectionInterfaceAvatarsInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.freedesktop.Telepathy.Connection.Interface.Avatars"; }

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

    ~OrgFreedesktopTelepathyConnectionInterfaceAvatarsInterface();

public Q_SLOTS: // METHODS
    inline QDBusReply<QStringList> GetAvatarRequirements(ushort &min_width, ushort &min_height, ushort &max_width, ushort &max_height, uint &max_size)
    {
        QList<QVariant> argumentList;
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("GetAvatarRequirements"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 6) {
            min_width = qdbus_cast<ushort>(reply.arguments().at(1));
            min_height = qdbus_cast<ushort>(reply.arguments().at(2));
            max_width = qdbus_cast<ushort>(reply.arguments().at(3));
            max_height = qdbus_cast<ushort>(reply.arguments().at(4));
            max_size = qdbus_cast<uint>(reply.arguments().at(5));
        }
        return reply;
    }

    inline QDBusReply<QStringList> GetAvatarTokens(const QList<uint> &contacts)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(contacts);
        return callWithArgumentList(QDBus::Block, QLatin1String("GetAvatarTokens"), argumentList);
    }

    inline QDBusReply<QByteArray> RequestAvatar(uint contact, QString &mimetype)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(contact);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("RequestAvatar"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) {
            mimetype = qdbus_cast<QString>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusReply<QString> SetAvatar(const QByteArray &data, const QString &mimetype)
    {
        QList<QVariant> argumentList;
        argumentList << qVariantFromValue(data) << qVariantFromValue(mimetype);
        return callWithArgumentList(QDBus::Block, QLatin1String("SetAvatar"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void AvatarUpdated(uint contact, const QString &new_avatar_token);
};

namespace org {
  namespace freedesktop {
    namespace Telepathy {
          typedef ::OrgFreedesktopTelepathyConnectionInterfaceAvatarsInterface ConnectionAvatarsInterface;
    }
  }
}
#endif
