1/*
2 This file is part of KDE.
3
4 SPDX-FileCopyrightText: 2009 Eckhart W├Ârner <ewoerner@kde.org>
5 SPDX-FileCopyrightText: 2011 Laszlo Papp <djszapi@archlinux.us>
6
7 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
8*/
9
10#ifndef ATTICA_PLATFORMDEPENDENT_H
11#define ATTICA_PLATFORMDEPENDENT_H
12
13#include <QList>
14#include <QtPlugin>
15
16class QByteArray;
17class QIODevice;
18class QNetworkAccessManager;
19class QNetworkReply;
20class QNetworkRequest;
21class QString;
22class QUrl;
23
24namespace Attica
25{
26class PlatformDependent
27{
28public:
29 virtual ~PlatformDependent()
30 {
31 }
32 virtual QList<QUrl> getDefaultProviderFiles() const = 0;
33 virtual void addDefaultProviderFile(const QUrl &url) = 0;
34 virtual void removeDefaultProviderFile(const QUrl &url) = 0;
35
36 /**
37 * Providers are enabled by default. Use this call to disable or enable them later.
38 */
39 virtual void enableProvider(const QUrl &baseUrl, bool enabled) const = 0;
40 virtual bool isEnabled(const QUrl &baseUrl) const = 0;
41
42 /**
43 * Asks the PlatformDependent plugin if it have a credentials for baseUrl
44 */
45 virtual bool hasCredentials(const QUrl &baseUrl) const = 0;
46
47 /**
48 * Asks the PlatformDependent plugin to load credentials from storage,
49 * and save it in user, password.
50 */
51 virtual bool loadCredentials(const QUrl &baseUrl, QString &user, QString &password) = 0;
52
53 /**
54 * Asks the PlatformDependent plugin to ask user to login and expects it to be stored in
55 * user and password.
56 * TODO KF6: Remove, askForCredentials and loadCredentials is essentially same, loadCredentials
57 * can itself ask for credentials if it is not present in store.
58 */
59 virtual bool askForCredentials(const QUrl &baseUrl, QString &user, QString &password) = 0;
60
61 /**
62 * Method to be called by attica to store the user and password in storage used by PlatformDependent
63 * plugin.
64 * TODO KF6: Remove, if you let platform plugin ask for credentials, you don't want to save credentials
65 * yourself and let plugin handle it.
66 */
67 virtual bool saveCredentials(const QUrl &baseUrl, const QString &user, const QString &password) = 0;
68
69 virtual QNetworkReply *get(const QNetworkRequest &request) = 0;
70 virtual QNetworkReply *post(const QNetworkRequest &request, QIODevice *data) = 0;
71 virtual QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data) = 0;
72 virtual void setNam(QNetworkAccessManager *)
73 {
74 }
75 virtual QNetworkAccessManager *nam() = 0;
76};
77
78}
79
80Q_DECLARE_INTERFACE(Attica::PlatformDependent, "org.kde.Attica.Internals/1.2")
81
82#endif
83

source code of attica/src/platformdependent.h