aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/core/content_object.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libtransport/src/hicn/transport/core/content_object.cc')
-rw-r--r--libtransport/src/hicn/transport/core/content_object.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/libtransport/src/hicn/transport/core/content_object.cc b/libtransport/src/hicn/transport/core/content_object.cc
index 4cd5623c4..df16923e9 100644
--- a/libtransport/src/hicn/transport/core/content_object.cc
+++ b/libtransport/src/hicn/transport/core/content_object.cc
@@ -81,6 +81,15 @@ ContentObject::ContentObject(ContentObject &&other) : Packet(std::move(other)) {
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) {
+ 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_,
@@ -92,7 +101,9 @@ const Name &ContentObject::getName() const {
return name_;
}
-ContentObject &ContentObject::setName(const Name &name) {
+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) {
throw errors::RuntimeException("Error setting content object name.");
@@ -102,8 +113,6 @@ ContentObject &ContentObject::setName(const Name &name) {
name_.getStructReference()) < 0) {
throw errors::MalformedPacketException();
}
-
- return *this;
}
void ContentObject::setName(Name &&name) {