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)
56 std::cout << "serialize" << std::endl;
58 argument.beginStructure();
59 argument << state.hash << state.name << (uint)(state.action) << state.state << state.progress
60 << state.down_rate << state.up_rate << state.seeds
61 << state.leeches << state.ratio << state.total_size;
62 argument.endStructure();
66 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
67 , TorrentState& state)
70 std::cout << "deserialize" << std::endl;
72 argument.beginStructure();
74 argument >> state.hash >> state.name >> action >> state.state >> state.progress
75 >> state.down_rate >> state.up_rate >> state.seeds
76 >> state.leeches >> state.ratio >> state.total_size;
77 state.action = (TorrentState::torrent_action)action;
78 argument.endStructure();
82 static inline QDBusArgument& operator << (QDBusArgument& argument
83 , ParamsMapConst_t& params)
85 ParamsMapConstIterator_t p;
87 std::cout << "serialize params" << std::endl;
91 for (p = params.constBegin(); p != params.constEnd(); ++p) {
92 argument.beginMapEntry();
93 argument << p.key() << p.value();
94 argument.endMapEntry();
100 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
101 , ParamsMap_t& params)
103 ParamsMapConstIterator_t p;
105 #ifdef QTRAPIDS_DEBUG
106 std::cout << "deserialize params" << std::endl;
109 for (p = params.constBegin(); p != params.constEnd(); ++p) {
110 argument.beginMapEntry();
111 argument >> key >> value;
113 argument.endMapEntry();
120 // class DBusConnector
128 // QDBusConnection connection_;
133 Q_DECLARE_METATYPE(qtrapids::TorrentState);
134 Q_DECLARE_METATYPE(qtrapids::ParamsMap_t);
136 #endif // _QTRAPIDS_DBUS_HPP_