aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/core/content_object.cc
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2019-03-21 11:01:39 +0100
committerMauro Sardara <msardara@cisco.com>2019-03-21 11:09:34 +0100
commitd35f9469120c2eb4062fb19050ebd2e0d5e7b0f8 (patch)
treed7080509d742ebf93029dd1a276c041059ff2067 /libtransport/src/hicn/transport/core/content_object.cc
parent972ccbeb3d6765c2add13b7b4da10c9fb6fb2c9c (diff)
[HICN-135] Fix setLifetime function.
Change-Id: Ic0423407082e0909584a793f266e5b5fb4fc71b4 Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/core/content_object.cc')
-rw-r--r--libtransport/src/hicn/transport/core/content_object.cc68
1 files changed, 41 insertions, 27 deletions
diff --git a/libtransport/src/hicn/transport/core/content_object.cc b/libtransport/src/hicn/transport/core/content_object.cc
index df16923e9..107ab8567 100644
--- a/libtransport/src/hicn/transport/core/content_object.cc
+++ b/libtransport/src/hicn/transport/core/content_object.cc
@@ -34,14 +34,14 @@ namespace core {
ContentObject::ContentObject(const Name &name, Packet::Format format)
: Packet(format) {
if (TRANSPORT_EXPECT_FALSE(
- hicn_data_set_name(format, (hicn_header_t *)packet_start_,
- name.getStructReference()) < 0)) {
+ hicn_data_set_name(format, packet_start_, name.getStructReference()) <
+ 0)) {
throw errors::RuntimeException("Error filling the packet name.");
}
- if (TRANSPORT_EXPECT_FALSE(
- hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0)) {
+ if (TRANSPORT_EXPECT_FALSE(hicn_data_get_name(format_, packet_start_,
+ name_.getStructReference()) <
+ 0)) {
throw errors::MalformedPacketException();
}
}
@@ -57,15 +57,15 @@ ContentObject::ContentObject(const Name &name, hicn_format_t format,
ContentObject::ContentObject(const uint8_t *buffer, std::size_t size)
: Packet(buffer, size) {
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0) {
+ if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
+ 0) {
throw errors::RuntimeException("Error getting name from content object.");
}
}
ContentObject::ContentObject(MemBufPtr &&buffer) : Packet(std::move(buffer)) {
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0) {
+ if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
+ 0) {
throw errors::RuntimeException("Error getting name from content object.");
}
}
@@ -73,8 +73,8 @@ ContentObject::ContentObject(MemBufPtr &&buffer) : Packet(std::move(buffer)) {
ContentObject::ContentObject(ContentObject &&other) : Packet(std::move(other)) {
name_ = std::move(other.name_);
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0) {
+ if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
+ 0) {
throw errors::MalformedPacketException();
}
}
@@ -84,15 +84,15 @@ ContentObject::~ContentObject() {}
void ContentObject::replace(MemBufPtr &&buffer) {
Packet::replace(std::move(buffer));
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0) {
+ if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
+ 0) {
throw errors::RuntimeException("Error getting name from content object.");
}
}
const Name &ContentObject::getName() const {
if (!name_) {
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
+ if (hicn_data_get_name(format_, packet_start_,
(hicn_name_t *)name_.getStructReference()) < 0) {
throw errors::MalformedPacketException();
}
@@ -104,34 +104,33 @@ const Name &ContentObject::getName() const {
Name &ContentObject::getWritableName() { return const_cast<Name &>(getName()); }
void ContentObject::setName(const Name &name) {
- if (hicn_data_set_name(format_, (hicn_header_t *)packet_start_,
- name.getStructReference()) < 0) {
+ if (hicn_data_set_name(format_, packet_start_, name.getStructReference()) <
+ 0) {
throw errors::RuntimeException("Error setting content object name.");
}
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0) {
+ if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
+ 0) {
throw errors::MalformedPacketException();
}
}
void ContentObject::setName(Name &&name) {
- if (hicn_data_set_name(format_, (hicn_header_t *)packet_start_,
- name.getStructReference()) < 0) {
+ if (hicn_data_set_name(format_, packet_start_, name.getStructReference()) <
+ 0) {
throw errors::RuntimeException(
"Error getting the payload length from content object.");
}
- if (hicn_data_get_name(format_, (hicn_header_t *)packet_start_,
- name_.getStructReference()) < 0) {
+ if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
+ 0) {
throw errors::MalformedPacketException();
}
}
uint32_t ContentObject::getPathLabel() const {
uint32_t path_label;
- if (hicn_data_get_path_label((hicn_header_t *)packet_start_, &path_label) <
- 0) {
+ if (hicn_data_get_path_label(packet_start_, &path_label) < 0) {
throw errors::RuntimeException(
"Error retrieving the path label from content object");
}
@@ -150,8 +149,7 @@ ContentObject &ContentObject::setPathLabel(uint32_t path_label) {
}
void ContentObject::setLocator(const ip_address_t &ip_address) {
- if (hicn_data_set_locator(format_, (hicn_header_t *)packet_start_,
- &ip_address) < 0) {
+ if (hicn_data_set_locator(format_, packet_start_, &ip_address) < 0) {
throw errors::RuntimeException("Error setting content object locator");
}
@@ -161,13 +159,29 @@ void ContentObject::setLocator(const ip_address_t &ip_address) {
ip_address_t ContentObject::getLocator() const {
ip_address_t ip;
- if (hicn_data_get_locator(format_, (hicn_header_t *)packet_start_, &ip) < 0) {
+ if (hicn_data_get_locator(format_, packet_start_, &ip) < 0) {
throw errors::RuntimeException("Error getting content object locator.");
}
return ip;
}
+void ContentObject::setLifetime(uint32_t lifetime) {
+ if (hicn_data_set_expiry_time(packet_start_, lifetime) < 0) {
+ throw errors::MalformedPacketException();
+ }
+}
+
+uint32_t ContentObject::getLifetime() const {
+ uint32_t lifetime = 0;
+
+ if (hicn_data_get_expiry_time(packet_start_, &lifetime) < 0) {
+ throw errors::MalformedPacketException();
+ }
+
+ return lifetime;
+}
+
void ContentObject::resetForHash() {
if (hicn_data_reset_for_hash(
format_, reinterpret_cast<hicn_header_t *>(packet_start_)) < 0) {