2
* Copyright 2014 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3, as published
6
* by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranties of
10
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11
* PURPOSE. See the GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License along
14
* with this program. If not, see <http://www.gnu.org/licenses/>.
17
* Charles Kerr <charles.kerr@canonical.com>
20
#ifndef INDICATOR_TRANSFER_WORLD_DBUS_H
21
#define INDICATOR_TRANSFER_WORLD_DBUS_H
23
#include <transfer/world.h>
34
* \brief a World that gets its updates & events from DBus
36
class DBusWorld: public World
39
DBusWorld(const std::shared_ptr<MutableModel>& model);
42
void open(const Transfer::Id& id);
43
void start(const Transfer::Id& id);
44
void pause(const Transfer::Id& id);
45
void resume(const Transfer::Id& id);
46
void cancel(const Transfer::Id& id);
47
void open_app(const Transfer::Id& id);
50
GDBusConnection* m_bus = nullptr;
51
GCancellable* m_cancellable = nullptr;
52
std::set<guint> m_signal_subscriptions;
53
std::shared_ptr<MutableModel> m_model;
55
void set_bus(GDBusConnection*);
56
void add_transfer(const char* object_path);
58
static void on_bus_ready(GObject*, GAsyncResult*, gpointer);
59
static void on_progress(GObject*, GAsyncResult*, gpointer);
60
static void on_total_size(GObject*, GAsyncResult*, gpointer);
61
static void on_download_signal(GDBusConnection*, const gchar*, const gchar*, const gchar*, const gchar*, GVariant*, gpointer);
62
static void on_download_created(GDBusConnection*, const gchar*, const gchar*, const gchar*, const gchar*, GVariant*, gpointer);
65
} // namespace transfer
66
} // namespace indicator
69
#endif // INDICATOR_TRANSFER_WORLD_H