aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Sardara <msardara+fdio@cisco.com>2020-02-18 16:53:12 +0100
committerMauro Sardara <msardara@cisco.com>2020-02-18 15:57:02 +0000
commit0f41a0646ab2083b7ed64c61ac5175f325e7ad3e (patch)
tree538613f382f94a5ef36cc2d19ac247d665a1ee57
parent0b2f5c75cfeb33b233c02866e848e3d94de48ee7 (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.cpp22
-rw-r--r--Input/ICNConnectionConsumerApi.h6
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;