1 #ifndef _QTRAPIDS_DBUS_HPP_
2 #define _QTRAPIDS_DBUS_HPP_
4 #include <QtDBus/QtDBus>
5 #include <QtCore/QString>
6 #include <QtCore/QHash>
36 torrent_action action;
44 qulonglong total_size;
47 typedef QHash<QString, QString> ParamsMap_t;
48 typedef QHash<QString, QString> const ParamsMapConst_t;
49 typedef ParamsMap_t::iterator ParamsMapIterator_t;
50 typedef ParamsMap_t::const_iterator ParamsMapConstIterator_t;
52 static inline QDBusArgument& operator << (QDBusArgument& argument
53 , TorrentState const& state)
55 std::cout << "serialize" << std::endl;
56 argument.beginStructure();
57 argument << state.hash << state.name << (uint)(state.action) << state.state << state.progress
58 << state.down_rate << state.up_rate << state.seeds
59 << state.leeches << state.ratio << state.total_size;
60 argument.endStructure();
64 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
65 , TorrentState& state)
67 std::cout << "deserialize" << std::endl;
68 argument.beginStructure();
70 argument >> state.hash >> state.name >> action >> state.state >> state.progress
71 >> state.down_rate >> state.up_rate >> state.seeds
72 >> state.leeches >> state.ratio >> state.total_size;
73 state.action = (TorrentState::torrent_action)action;
74 argument.endStructure();
78 static inline QDBusArgument& operator << (QDBusArgument& argument
79 , ParamsMapConst_t& params)
81 ParamsMapConstIterator_t p;
82 std::cout << "serialize params" << std::endl;
84 for (p = params.constBegin(); p != params.constEnd(); ++p) {
85 argument.beginMapEntry();
86 argument << p.key() << p.value();
87 argument.endMapEntry();
93 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
94 , ParamsMap_t& params)
96 ParamsMapConstIterator_t p;
98 std::cout << "deserialize params" << std::endl;
100 for (p = params.constBegin(); p != params.constEnd(); ++p) {
101 argument.beginMapEntry();
102 argument >> key >> value;
104 argument.endMapEntry();
111 // class DBusConnector
119 // QDBusConnection connection_;
124 Q_DECLARE_METATYPE(qtrapids::TorrentState);
125 Q_DECLARE_METATYPE(qtrapids::ParamsMap_t);
127 #endif // _QTRAPIDS_DBUS_HPP_