1 #ifndef _QTRAPIDS_DBUS_HPP_
2 #define _QTRAPIDS_DBUS_HPP_
4 #include <QtDBus/QtDBus>
5 #include <QtCore/QString>
6 #include <QtCore/QHash>
39 torrent_action action;
47 qulonglong total_size;
50 typedef QHash<QString, QString> ParamsMap_t;
51 typedef QHash<QString, QString> const ParamsMapConst_t;
52 typedef QHash<QString, QString>::iterator ParamsMapIterator_t;
53 typedef QHash<QString, QString>::const_iterator ParamsMapConstIterator_t;
55 static inline QDBusArgument& operator << (QDBusArgument& argument
56 , TorrentState const& state)
58 std::cout << "serialize" << std::endl;
59 argument.beginStructure();
60 argument << state.hash << state.name << (uint)(state.action) << state.state << state.progress
61 << state.down_rate << state.up_rate << state.seeds
62 << state.leeches << state.ratio << state.total_size;
63 argument.endStructure();
67 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
68 , TorrentState& state)
70 std::cout << "deserialize" << std::endl;
71 argument.beginStructure();
73 argument >> state.hash >> state.name >> action >> state.state >> state.progress
74 >> state.down_rate >> state.up_rate >> state.seeds
75 >> state.leeches >> state.ratio >> state.total_size;
76 state.action = (TorrentState::torrent_action)action;
77 argument.endStructure();
81 static inline QDBusArgument& operator << (QDBusArgument& argument
82 , ParamsMapConst_t& params)
84 ParamsMapConstIterator_t p;
85 std::cout << "serialize params" << std::endl;
87 for (p = params.constBegin(); p != params.constEnd(); ++p)
89 argument.beginMapEntry();
90 argument << p.key() << p.value();
91 argument.endMapEntry();
97 static inline QDBusArgument const& operator >> (QDBusArgument const& argument
98 , ParamsMap_t& params)
100 ParamsMapConstIterator_t p;
102 std::cout << "deserialize params" << std::endl;
104 for (p = params.constBegin(); p != params.constEnd(); ++p)
106 argument.beginMapEntry();
107 argument >> key >> value;
109 argument.endMapEntry();
116 // class DBusConnector
124 // QDBusConnection connection_;
129 Q_DECLARE_METATYPE(qtrapids::TorrentState);
130 Q_DECLARE_METATYPE(qtrapids::ParamsMap_t);
132 #endif // _QTRAPIDS_DBUS_HPP_