29#ifndef ACCOUNTS_ACCOUNT_H 
   30#define ACCOUNTS_ACCOUNT_H 
   32#include "Accounts/accountscommon.h" 
   33#include "Accounts/error.h" 
   34#include "Accounts/service.h" 
   36#define ACCOUNTS_KEY_CREDENTIALS_ID QStringLiteral("CredentialsId") 
   43    typedef struct _AgAccount AgAccount;
 
   44    typedef struct _AgAccountWatch *AgAccountWatch;
 
   53typedef quint32 AccountId;
 
   54typedef QList<AccountId> AccountIdList;
 
   57class AccountServicePrivate;
 
   70class ACCOUNTS_EXPORT Watch: 
public QObject
 
   78    Watch(QObject *parent = 
nullptr);
 
   81    void setWatch(AgAccountWatch w) { watch = w; };
 
   86    void notify(
const char *key);
 
   95class ACCOUNTS_EXPORT Account: 
public QObject
 
  100    Account(Manager *manager, 
const QString &provider, QObject *parent = 
nullptr);
 
  103    static Account *fromId(Manager *manager, AccountId 
id,
 
  104                           QObject *parent = 
nullptr);
 
  106    AccountId id() 
const;
 
  108    Manager *manager() 
const;
 
  110    bool supportsService(
const QString &serviceType) 
const;
 
  112    ServiceList services(
const QString &serviceType = QString()) 
const;
 
  113    ServiceList enabledServices() 
const;
 
  115    bool enabled() 
const;
 
  116    bool isEnabled() 
const;
 
  117    void setEnabled(
bool);
 
  126    uint credentialsId();
 
  134    void setCredentialsId(
const uint 
id) {
 
  135        setValue(ACCOUNTS_KEY_CREDENTIALS_ID, 
id);
 
  138    QString displayName() 
const;
 
  139    void setDisplayName(
const QString &displayName);
 
  141    QString providerName() 
const;
 
  142    Provider provider() 
const;
 
  144    void selectService(
const Service &service = Service());
 
  145    Service selectedService() 
const;
 
  148    QStringList allKeys() 
const;
 
  149    void beginGroup(
const QString &prefix);
 
  150    QStringList childGroups() 
const;
 
  151    QStringList childKeys() 
const;
 
  153    bool contains(
const QString &key) 
const;
 
  155    QString group() 
const;
 
  156    bool isWritable() 
const;
 
  157    void remove(
const QString &key);
 
  159    void setValue(
const QString &key, 
const QVariant &value);
 
  160    QVariant value(
const QString &key,
 
  161                   const QVariant &defaultValue = QVariant(),
 
  162                   SettingSource *source = 
nullptr) 
const;
 
  163    SettingSource value(
const QString &key, QVariant &value) 
const;
 
  164    QString valueAsString(
const QString &key,
 
  165                          QString default_value = QString(),
 
  166                          SettingSource *source = 
nullptr) 
const;
 
  167    int valueAsInt(
const QString &key,
 
  168                   int default_value = 0,
 
  169                   SettingSource *source = 
nullptr) 
const;
 
  170    quint64 valueAsUInt64(
const QString &key,
 
  171                   quint64 default_value = 0,
 
  172                   SettingSource *source = 
nullptr) 
const;
 
  173    bool valueAsBool(
const QString &key,
 
  174                     bool default_value = 
false,
 
  175                     SettingSource *source = 
nullptr) 
const;
 
  177    Watch *watchKey(
const QString &key = QString());
 
  184    void sign(
const QString &key, 
const char *token);
 
  185    bool verify(
const QString &key, 
const char **token);
 
  186    bool verifyWithTokens(
const QString &key, QList<const char*> tokens);
 
  189    void displayNameChanged(
const QString &displayName);
 
  190    void enabledChanged(
const QString &serviceName, 
bool enabled);
 
  198    AgAccount *account();
 
  201    Account(Private *d, QObject *parent = 
nullptr);
 
  202    friend class Manager;
 
  203    friend class Account::Private;
 
  205    friend class AccountService;
 
  206    friend class AccountServicePrivate;
 
Base object definition for accounts error handling.