diff --git a/pep-server.cpp b/pep-server.cpp index 0995d38..a8dcaf8 100644 --- a/pep-server.cpp +++ b/pep-server.cpp @@ -22,6 +22,8 @@ pEp::Server::~Server() void pEp::Server::send_test(const pEpDBusMessage& src) { + message m; + m << src; std::cout << "Got something" << std::endl; return; } diff --git a/tests.cpp b/tests.cpp index a90498e..7ea9ca0 100644 --- a/tests.cpp +++ b/tests.cpp @@ -13,15 +13,21 @@ int main() from.address="leviathan@libresilicon.com"; m.from=&from; - pEpDBusMessage src, dst; + /*pEpDBusMessage src, dst; pEpDBusStringList keylist; pEpDBusRating rating; pEpDBusEncryptionFlags flags; pEpDBusStatus status; - src.clear(); - src << m; + src.clear();*/ //client.decrypt_message(src,keylist,rating,flags,status,dst); + //dst >> m; + + ::DBus::MessageIter wi; + ::DBus::Variant _src; + pEpDBusMessage src; + src << m; + client.send_test(src); - dst >> m; + return 0; } diff --git a/types/pEpDBusMessage.cpp b/types/pEpDBusMessage.cpp index 9768859..4be9353 100644 --- a/types/pEpDBusMessage.cpp +++ b/types/pEpDBusMessage.cpp @@ -1,31 +1,46 @@ #include "pEpDBusMessage.h" #include -pEpDBusMessage::pEpDBusMessage() +pEpDBusMessage::pEpDBusMessage() : DBus::Variant::Variant() { + writer().new_variant("s"); } -pEpDBusMessage::pEpDBusMessage(message m) +pEpDBusMessage::pEpDBusMessage(message m) : DBus::Variant::Variant() { + writer().new_variant("s"); } -DBus::Variant& operator<<(DBus::Variant&, const pEpDBusMessage&) +DBus::Variant& operator>>(DBus::Variant &v, const pEpDBusMessage &m) { - DBus::Variant ret; - // TODO Copy the writer over to the other variant - return ret; + DBus::MessageIter to = m.writer(); + v.reader().copy_data(to); + return v; +} + +DBus::Variant& operator<<(DBus::Variant &v, const pEpDBusMessage &m) +{ + DBus::MessageIter to = v.writer(); + m.reader().copy_data(to); + return v; } message& pEpDBusMessage::operator >> (message &m) { - //m.from->address << reader(); + m.from->address = writer().get_string(); return m; } +DBus::Variant& pEpDBusMessage::operator << (DBus::Variant &v) +{ + DBus::MessageIter to = writer(); + v.reader().copy_data(to); + return v; +} + message& pEpDBusMessage::operator << (message &m) { - writer().append_string("test"); - //writer().append_string(m.from->address); + writer().append_string(m.from->address); return m; } diff --git a/types/pEpDBusMessage.h b/types/pEpDBusMessage.h index 20b5f31..82baeef 100644 --- a/types/pEpDBusMessage.h +++ b/types/pEpDBusMessage.h @@ -11,12 +11,20 @@ public: explicit pEpDBusMessage(); explicit pEpDBusMessage(message); - message& operator >> (message&); - message& operator << (message&); + message& operator >> (message &m); + message& operator << (message &m); - const DBus::Signature signature() const { return "b"; } + DBus::Variant& operator << (DBus::Variant &v); + + //const DBus::Signature signature() const; friend DBus::Variant& operator << (DBus::Variant&, const pEpDBusMessage&); + friend DBus::Variant& operator >> (DBus::Variant&, const pEpDBusMessage&); + + friend message& operator << (message &m, const pEpDBusMessage&) { return m; } + friend message& operator >> (message &m, const pEpDBusMessage&) { return m; } + + //friend std::string operator << (DBus::Variant&, const pEpDBusMessage&); }; #endif