File indexing completed on 2024-05-19 05:00:39

0001 /*
0002  * SPDX-FileCopyrightText: 2017 Elvis Angelaccio <elvis.angelaccio@kde.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  *
0006  */
0007 
0008 #pragma once
0009 
0010 #include <QSet>
0011 
0012 #include <KGAPI/Account>
0013 #include <KIO/UDSEntry>
0014 
0015 class AbstractAccountManager
0016 {
0017 public:
0018     virtual ~AbstractAccountManager();
0019 
0020     /**
0021      * @return Pointer to the account for @p accountName.
0022      * The account is valid only if @p accountName is in accounts().
0023      * @see accounts()
0024      */
0025     virtual KGAPI2::AccountPtr account(const QString &accountName) = 0;
0026 
0027     /**
0028      * Creates a new account.
0029      * @return The new account if a new account has been created, an invalid account otherwise.
0030      */
0031     virtual KGAPI2::AccountPtr createAccount() = 0;
0032 
0033     virtual KGAPI2::AccountPtr refreshAccount(const KGAPI2::AccountPtr &account) = 0;
0034 
0035     /**
0036      * Remove @p accountName from accounts().
0037      * @see accounts()
0038      */
0039     virtual void removeAccount(const QString &accountName) = 0;
0040 
0041     /**
0042      * @return The gdrive accounts managed by this object.
0043      */
0044     virtual QSet<QString> accounts() = 0;
0045 };