aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/core/name.h
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2019-07-08 15:00:58 +0200
committerMauro Sardara <msardara@cisco.com>2019-07-08 16:45:04 +0200
commit63422dfdcb1cd6827e76440cc147c9eac415952a (patch)
treeaeafaffb0e1f7a68c823611609e21983f51f5d0e /libtransport/src/hicn/transport/core/name.h
parent87cd4b4d22a08f1b56cd067770a29bcb05ebb845 (diff)
[HICN-242] Perform only one allocation for the whole buffer passed to produce()
Change-Id: Ib4628d0a7711e2d7175b3dbb5c152dd22616ff32 Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/core/name.h')
-rw-r--r--libtransport/src/hicn/transport/core/name.h20
1 files changed, 5 insertions, 15 deletions
diff --git a/libtransport/src/hicn/transport/core/name.h b/libtransport/src/hicn/transport/core/name.h
index b2f913986..061371be5 100644
--- a/libtransport/src/hicn/transport/core/name.h
+++ b/libtransport/src/hicn/transport/core/name.h
@@ -67,9 +67,7 @@ class Name {
Name(const std::string &uri);
- Name(const Name &name, bool hard_copy = false);
-
- Name(Name &&name);
+ Name(const Name &name);
Name &operator=(const Name &name);
@@ -103,21 +101,13 @@ class Name {
int getAddressFamily() const;
private:
- TRANSPORT_ALWAYS_INLINE NameStruct *getStructReference() const {
- if (TRANSPORT_EXPECT_TRUE(name_ != nullptr)) {
- return name_.get();
- }
-
- return nullptr;
+ TRANSPORT_ALWAYS_INLINE const NameStruct *getConstStructReference() const {
+ return &name_;
}
- static TRANSPORT_ALWAYS_INLINE std::unique_ptr<NameStruct> createEmptyName() {
- NameStruct *name = new NameStruct;
- name->type = HNT_UNSPEC;
- return std::unique_ptr<NameStruct>(name);
- };
+ TRANSPORT_ALWAYS_INLINE NameStruct *getStructReference() { return &name_; }
- std::unique_ptr<NameStruct> name_;
+ NameStruct name_;
};
std::ostream &operator<<(std::ostream &os, const Name &name);