2
* Copyright © 2013 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU Lesser General Public License version 3 as
6
* published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Thomas Voß <thomas.voss@canonical.com>
18
#ifndef COM_UBUNTU_CONTENT_HUB_H_
19
#define COM_UBUNTU_CONTENT_HUB_H_
21
#include <com/ubuntu/content/peer.h>
22
#include <com/ubuntu/content/scope.h>
23
#include <com/ubuntu/content/type.h>
34
class ImportExportHandler;
38
class Hub : public QObject
45
static Hub* instance();
48
Hub(const Hub&) = delete;
50
Hub& operator=(const Hub&) = delete;
52
Q_INVOKABLE virtual void register_import_export_handler(ImportExportHandler*);
53
Q_INVOKABLE virtual const Store* store_for_scope_and_type(Scope scope, Type type);
54
Q_INVOKABLE virtual Peer default_peer_for_type(Type type);
55
Q_INVOKABLE virtual QVector<Peer> known_peers_for_type(Type type);
56
Q_INVOKABLE virtual Transfer* create_import_for_type_from_peer(Type type, Peer peer);
57
Q_INVOKABLE virtual void quit();
60
Hub(QObject* = nullptr);
64
QScopedPointer<Private> d;
70
#endif // COM_UBUNTU_CONTENT_HUB_H_