diff options
author | Raquel Medina <raquel.medina@konsulko.com> | 2020-04-09 16:39:32 +0200 |
---|---|---|
committer | Raquel Medina <raquel.medina@konsulko.com> | 2020-04-09 18:26:04 +0200 |
commit | e57b4f75b55c2befad4f9944f43c8aa2310321b7 (patch) | |
tree | 4fe80cd71e3ecbc5344bf15e06336073cc99fb33 | |
parent | 0ed292d3ccf93c889734960676a321d1166d3f66 (diff) |
add missing overrides in ResponseMessage
The original message hierarchy rework patch
is missing functionality which results in received
replies being discarded.
Basically, ResponseMessage class is
missing the override required to match replies to
the original calls.
Bug-AGL: SPEC-3112
Fixes: 0ed292d3ccf9 (rework Message hierarchy)
Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
Change-Id: I39030ef212b2175a590deca02f9f9ff41bf7abf4
-rw-r--r-- | callmessage.cpp | 5 | ||||
-rw-r--r-- | message.h | 5 | ||||
-rw-r--r-- | responsemessage.cpp | 27 | ||||
-rw-r--r-- | responsemessage.h | 7 |
4 files changed, 13 insertions, 31 deletions
diff --git a/callmessage.cpp b/callmessage.cpp index 4afb071..1dfa72e 100644 --- a/callmessage.cpp +++ b/callmessage.cpp @@ -49,8 +49,7 @@ QByteArray CallMessage::serialize(QJsonDocument::JsonFormat format) array.append(m_request["api"].toString() + "/" + m_request["verb"].toString()); array.append(m_request["parameter"].toJsonValue()); - QJsonDocument jdoc; - jdoc.setArray(array); + m_jdoc.setArray(array); - return jdoc.toJson(format).data(); + return m_jdoc.toJson(format).data(); } @@ -37,7 +37,10 @@ class Message { public: Message(); - void setAdditionalData(QByteArray data) {}; + virtual bool setAdditionalData(QByteArray data) + { + return false; + } QByteArray send(QWebSocket& transport, unsigned int callid); inline bool isComplete() const diff --git a/responsemessage.cpp b/responsemessage.cpp index 96dab97..9f8e6f2 100644 --- a/responsemessage.cpp +++ b/responsemessage.cpp @@ -22,35 +22,10 @@ #include "responsemessage.h" -//deprecated method call new constructor and setAdditionalData() instead: -ResponseMessage::ResponseMessage(QByteArray request) -{ - - QJsonDocument jdoc(QJsonDocument::fromJson(request)); - - if (!jdoc.isArray()) { - qWarning("Invalid appfw message: not an array"); - return; - } - - QJsonArray msg = jdoc.array(); - - if (msg.size() != 4) { - qWarning("Invalid appfw message: invalid array size"); - return; - } - - QStringList api_str_list = msg[2].toString().split(QRegExp("/")); - - m_request["msgid"] = msg.at(0); - m_request["callid"] = msg.at(1); - m_request["api"] = api_str_list[0]; - m_request["verb"] = api_str_list[1]; - m_request["parameter"] = msg.at(3); -} ResponseMessage::ResponseMessage(QJsonDocument content) { + m_jdoc = content; QJsonArray msg = content.array(); if (!msg[2].isObject()) { qWarning("Invalid appfw payload: no JSON object"); diff --git a/responsemessage.h b/responsemessage.h index edad3b1..bac4296 100644 --- a/responsemessage.h +++ b/responsemessage.h @@ -60,6 +60,11 @@ class ResponseMessage : public Message return m_reply_data; } + bool getCallId(unsigned int *id) const override + { + *id = m_reply_callid; + return true; + } bool isEvent() override { return false; @@ -70,7 +75,7 @@ class ResponseMessage : public Message return true; } - bool setAdditionalData(QByteArray data); + bool setAdditionalData(QByteArray data) override; bool copyCallId(unsigned int *id); QByteArray serialize(QJsonDocument::JsonFormat format = QJsonDocument::Compact) override; |