diff options
author | Mauro Sardara <msardara+fdio@cisco.com> | 2020-02-18 16:53:12 +0100 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2020-02-18 15:57:02 +0000 |
commit | 0f41a0646ab2083b7ed64c61ac5175f325e7ad3e (patch) | |
tree | 538613f382f94a5ef36cc2d19ac247d665a1ee57 | |
parent | 0b2f5c75cfeb33b233c02866e848e3d94de48ee7 (diff) |
[HICN-529] Fix viper API to work with hicn and cicn.
Change-Id: I9715c29855302ee747313a95897e645d86218c7f
Signed-off-by: Mauro Sardara <msardara+fdio@cisco.com>
Signed-off-by: Mauro Sardara <msardara@cisco.com>
-rw-r--r-- | Input/ICNConnectionConsumerApi.cpp | 22 | ||||
-rw-r--r-- | Input/ICNConnectionConsumerApi.h | 6 |
2 files changed, 22 insertions, 6 deletions
diff --git a/Input/ICNConnectionConsumerApi.cpp b/Input/ICNConnectionConsumerApi.cpp index 59330852..26edd830 100644 --- a/Input/ICNConnectionConsumerApi.cpp +++ b/Input/ICNConnectionConsumerApi.cpp @@ -148,24 +148,36 @@ int ICNConnectionConsumerApi::Read(uint8_t *data, size_t len) {"Connection", "Keep-Alive"}}; std::string s(m_name.c_str()); hTTPClientConnection->get(s, headers, {}, nullptr, nullptr, this->v6FirstWord); +#ifdef HICNET + response = hTTPClientConnection->response()->getPayload(); +#else response = hTTPClientConnection->response(); +#endif this->res = true; this->dataPos = 0; } - if (response.getPayload().size() - this->dataPos > (int)len) +#ifdef HICNET + char * bytes = (char*)response->writableData(); + std::size_t size = response->length(); +#else + char *bytes = response.getPayload().data(); + std::size_t size = response.getPayload().size(); +#endif + + if (size - this->dataPos > (int)len) { - memcpy(data, (char*)response.getPayload().data() + this->dataPos, len); + memcpy(data, bytes + this->dataPos, len); this->dataPos += len; return len; } else { - memcpy(data, (char*)response.getPayload().data() + this->dataPos, response.getPayload().size() - this->dataPos); - int length = response.getPayload().size() - this->dataPos; + memcpy(data, bytes + this->dataPos, size - this->dataPos); + int length = size - this->dataPos; if (length == 0) { this->res = false; } - this->dataPos = response.getPayload().size(); + this->dataPos = size; return length; } } diff --git a/Input/ICNConnectionConsumerApi.h b/Input/ICNConnectionConsumerApi.h index c4e89926..539e2e0f 100644 --- a/Input/ICNConnectionConsumerApi.h +++ b/Input/ICNConnectionConsumerApi.h @@ -96,7 +96,11 @@ public: private: libl4::http::HTTPClientConnection *hTTPClientConnection; - libl4::http::HTTPResponse response; +#ifdef HICNET + libl4::http::HTTPPayload response; +#else + std::shared_ptr<libl4::http::HTTPResponse> response; +#endif float beta; float drop; std::string v6FirstWord; |