From 5bfcf6a9a87458e8c8dfd4b324f4b4c3cc298aa9 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Tue, 4 Apr 2023 14:04:28 +0200 Subject: [PATCH] Add copy constructor, copy assignment operator, move constructor, and move assignment operator to Serdes_Nav_Message class --- src/core/libs/serdes_nav_message.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/core/libs/serdes_nav_message.h b/src/core/libs/serdes_nav_message.h index 98c53007f..603b39d3e 100644 --- a/src/core/libs/serdes_nav_message.h +++ b/src/core/libs/serdes_nav_message.h @@ -50,6 +50,35 @@ public: // google::protobuf::ShutdownProtobufLibrary(); } + inline Serdes_Nav_Message(const Serdes_Nav_Message& other) noexcept : navmsg_(other.navmsg_) //!< Copy constructor + { + } + + inline Serdes_Nav_Message& operator=(const Serdes_Nav_Message& rhs) noexcept //!< Copy assignment operator + { + if (this != &rhs) + { + this->navmsg_.CopyFrom(rhs.navmsg_); + } + return *this; + } + + inline Serdes_Nav_Message(Serdes_Nav_Message&& other) noexcept : navmsg_(std::move(other.navmsg_)) //!< Move constructor + { + // Set the other object's navmsg_ to a default-constructed state + other.navmsg_ = gnss_sdr::navMsg{}; + } + + inline Serdes_Nav_Message& operator=(Serdes_Nav_Message&& other) noexcept //!< Move assignment operator + { + if (this != &other) + { + navmsg_ = std::move(other.navmsg_); + other.navmsg_ = gnss_sdr::navMsg{}; + } + return *this; + } + inline std::string createProtobuffer(const std::shared_ptr nav_msg_packet) //!< Serialization into a string { navmsg_.Clear();