1 #ifndef _QTRAPIDS_DBUS_HPP_
2 #define _QTRAPIDS_DBUS_HPP_
4 #include <QtDBus/QtDBus>
5 #include <QtCore/QString>
6 #include <QtCore/QHash>
37 torrent_action action;
45 qulonglong total_size;
46 qulonglong total_done;
49 typedef QHash<QString, QString> ParamsMap_t;
50 typedef QHash<QString, QString> const ParamsMapConst_t;
51 typedef ParamsMap_t::iterator ParamsMapIterator_t;
52 typedef ParamsMap_t::const_iterator ParamsMapConstIterator_t;
54 static inline QDBusArgument& operator << (QDBusArgument& argument
55 , TorrentState const& state)
58 std::cout << "serialize" << std::endl;
60 argument.beginStructure();
61 argument << state.hash << state.name << (uint)(state.action) << state.state << state.progress
62 << state.down_rate << state.up_rate << state.seeds
63 << state.leeches << state.ratio << state.total_size << state.total_done;
64 argument.endStructure();
68 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
69 , TorrentState& state)
72 std::cout << "deserialize" << std::endl;
74 argument.beginStructure();
76 argument >> state.hash >> state.name >> action >> state.state >> state.progress
77 >> state.down_rate >> state.up_rate >> state.seeds
78 >> state.leeches >> state.ratio >> state.total_size >> state.total_done;
79 state.action = (TorrentState::torrent_action)action;
80 argument.endStructure();
84 static inline QDBusArgument& operator << (QDBusArgument& argument
85 , ParamsMapConst_t& params)
87 ParamsMapConstIterator_t p;
89 std::cout << "serialize params" << std::endl;
93 for (p = params.constBegin(); p != params.constEnd(); ++p) {
94 argument.beginMapEntry();
95 argument << p.key() << p.value();
96 argument.endMapEntry();
102 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
103 , ParamsMap_t& params)
105 ParamsMapConstIterator_t p;
107 #ifdef QTRAPIDS_DEBUG
108 std::cout << "deserialize params" << std::endl;
111 for (p = params.constBegin(); p != params.constEnd(); ++p) {
112 argument.beginMapEntry();
113 argument >> key >> value;
115 argument.endMapEntry();
122 // class DBusConnector
130 // QDBusConnection connection_;
135 Q_DECLARE_METATYPE(qtrapids::TorrentState);
136 Q_DECLARE_METATYPE(qtrapids::ParamsMap_t);
138 #endif // _QTRAPIDS_DBUS_HPP_