Here is new version of password interface:

#ifndef PASSWORD_INTERFACE
#define PASSWORD_INTERFACE

#include <QObject>
#include <QString>
#include <QtPlugin>

class PasswordInterface : public QObject {

    Q_OBJECT

public:
    enum Status {
        Success = 0,
        NoPassword,
        Error,
    };

    PasswordInterface(QObject *parent) : QObject(parent) {}

public slots:
    /**
     * @short Request password associated with accountId and accountType and 
emit signal @see passwordAvailable when finish
     **/
    virtual void requestPassword(const QString &accountId, const QString 
&accountType) = 0;

    /**
     * @short Save password for accountId and accountType and emit signal @see 
passwordStored when finish
     **/
    virtual void storePassword(const QString &accountId, const QString 
&accountType, const QString &password) = 0;

    /**
     * @short Delete password for accountId and accountType and emit signal 
@see passwordDeleted when finish
     **/
    virtual void deletePassword(const QString &accountId, const QString 
&accountType) = 0;

signals:
    /**
     * @short Emitted when @see requestPassword finish
     **/
    void passwordAvailable(enum PasswordInterface::Status status, const QString 
&accountId, const QString &accountType, const 
QString &password);

    /**
     * @short Emitted when @see storePassword finish
     **/
    void passwordStored(enum PasswordInterface::Status status, const QString 
&accountId, const QString &accountType);

    /**
     * @short Emitted when @see deletePassword finish
     **/
    void passwordDeleted(enum PasswordInterface::Status status, const QString 
&accountId, const QString &accountType);

};

class PasswordFactoryInterface {

public:
    /**
     * @short Return name of plugin
     **/
    virtual QString name() = 0;

    /**
     * @short Return description of plugin
     **/
    virtual QString description() = 0;

    /**
     * @short Return true if this plugin is valid and can be used (e.g this 
password storage is available)
     **/
    virtual bool isValid() = 0;

    /**
     * @short Return new PasswordInterface instance implemented by plugin
     **/
    virtual PasswordInterface *create(QObject *parent) = 0;

};

Q_DECLARE_INTERFACE(PasswordFactoryInterface, "PasswordFactoryInterface");

#endif //PASSWORD_INTERFACE


-- 
Pali Rohár
pali.ro...@gmail.com

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to