diff options
author | Mauro Sardara <msardara@cisco.com> | 2019-07-08 15:00:58 +0200 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2019-07-08 16:45:04 +0200 |
commit | 63422dfdcb1cd6827e76440cc147c9eac415952a (patch) | |
tree | aeafaffb0e1f7a68c823611609e21983f51f5d0e /libtransport/src/hicn/transport/core/name.h | |
parent | 87cd4b4d22a08f1b56cd067770a29bcb05ebb845 (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.h | 20 |
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); |