16 #ifndef IOX_POSH_POPO_BUILDING_BLOCKS_TYPED_UNIQUE_ID_HPP
17 #define IOX_POSH_POPO_BUILDING_BLOCKS_TYPED_UNIQUE_ID_HPP
19 #include "iceoryx_utils/cxx/newtype.hpp"
20 #include "iceoryx_utils/error_handling/error_handling.hpp"
38 void setUniqueRouDiId(
const uint16_t
id) noexcept;
41 void unsetUniqueRouDiId() noexcept;
45 uint16_t getUniqueRouDiId() noexcept;
99 cxx::newtype::ProtectedConstructByValueCopy,
100 cxx::newtype::Comparable,
101 cxx::newtype::Sortable,
102 cxx::newtype::Convertable,
103 cxx::newtype::CopyConstructable,
104 cxx::newtype::MoveConstructable,
105 cxx::newtype::CopyAssignable,
106 cxx::newtype::MoveAssignable>
109 using ThisType::ThisType;
118 bool isValid()
const noexcept;
121 static constexpr uint64_t INVALID_UNIQUE_ID = 0u;
122 static constexpr uint64_t ROUDI_ID_BIT_LENGTH = 16u;
123 static constexpr uint64_t UNIQUE_ID_BIT_LENGTH = 48u;
124 static std::atomic<uint64_t> globalIDCounter;
130 #include "iceoryx_posh/internal/popo/building_blocks/typed_unique_id.inl"
Unique ID depending on a type. If you would like to assign different types consistent unique ids use ...
Definition: typed_unique_id.hpp:107
Definition: service_description.hpp:29
Struct to signal the constructor to create an invalid id.
Definition: typed_unique_id.hpp:50