19#ifndef FASTDDS_RTPS_COMMON__ENTITYID_T_HPP
20#define FASTDDS_RTPS_COMMON__ENTITYID_T_HPP
22#include <fastdds/fastdds_dll.hpp>
23#include <fastdds/rtps/common/Types.hpp>
34#define ENTITYID_UNKNOWN 0x00000000
35#define ENTITYID_RTPSParticipant 0x000001c1
36#define ENTITYID_SEDP_BUILTIN_TOPIC_WRITER 0x000002c2
37#define ENTITYID_SEDP_BUILTIN_TOPIC_READER 0x000002c7
38#define ENTITYID_SEDP_BUILTIN_PUBLICATIONS_WRITER 0x000003c2
39#define ENTITYID_SEDP_BUILTIN_PUBLICATIONS_READER 0x000003c7
40#define ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_WRITER 0x000004c2
41#define ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_READER 0x000004c7
42#define ENTITYID_SPDP_BUILTIN_RTPSParticipant_WRITER 0x000100c2
43#define ENTITYID_SPDP_BUILTIN_RTPSParticipant_READER 0x000100c7
44#define ENTITYID_P2P_BUILTIN_RTPSParticipant_MESSAGE_WRITER 0x000200C2
45#define ENTITYID_P2P_BUILTIN_RTPSParticipant_MESSAGE_READER 0x000200C7
46#define ENTITYID_P2P_BUILTIN_PARTICIPANT_STATELESS_WRITER 0x000201C3
47#define ENTITYID_P2P_BUILTIN_PARTICIPANT_STATELESS_READER 0x000201C4
49#define ENTITYID_TL_SVC_REQ_WRITER 0x000300C3
50#define ENTITYID_TL_SVC_REQ_READER 0x000300C4
51#define ENTITYID_TL_SVC_REPLY_WRITER 0x000301C3
52#define ENTITYID_TL_SVC_REPLY_READER 0x000301C4
55#define ENTITYID_SEDP_BUILTIN_PUBLICATIONS_SECURE_WRITER 0xff0003c2
56#define ENTITYID_SEDP_BUILTIN_PUBLICATIONS_SECURE_READER 0xff0003c7
57#define ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_WRITER 0xff0004c2
58#define ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_READER 0xff0004c7
59#define ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_SECURE_WRITER 0xff0200c2
60#define ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_SECURE_READER 0xff0200c7
61#define ENTITYID_P2P_BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_WRITER 0xff0202C3
62#define ENTITYID_P2P_BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_READER 0xff0202C4
63#define ENTITYID_SPDP_RELIABLE_BUILTIN_PARTICIPANT_SECURE_WRITER 0xff0101c2
64#define ENTITYID_SPDP_RELIABLE_BUILTIN_PARTICIPANT_SECURE_READER 0xff0101c7
67#define ENTITYID_DS_SERVER_VIRTUAL_WRITER 0x00030073
68#define ENTITYID_DS_SERVER_VIRTUAL_READER 0x00030074
70#ifdef FASTDDS_STATISTICS
71#define ENTITYID_MONITOR_SERVICE_WRITER 0x004000D2
78 static constexpr unsigned int size = 4;
83 *
this = ENTITYID_UNKNOWN;
93 memcpy(value, &
id, size);
94#if !FASTDDS_IS_BIG_ENDIAN_TARGET
105 memcpy(value,
id.value, size);
114 memmove(value,
id.value, size);
120 memcpy(value,
id.value, size);
127 memmove(value,
id.value, size);
138 memcpy(value, &
id, size);
139#if !FASTDDS_IS_BIG_ENDIAN_TARGET
146#if !FASTDDS_IS_BIG_ENDIAN_TARGET
167 uint32_t res = *
reinterpret_cast<const uint32_t*
>(value);
169#if !FASTDDS_IS_BIG_ENDIAN_TARGET
170 res = ( res >> 24 ) |
171 (0x0000ff00 & ( res >> 8)) |
172 (0x00ff0000 & ( res << 8)) |
187 return 0x4u & to_uint32();
193 return 0x2u & to_uint32() && !is_reader();
204 return std::memcmp(value, other.
value, size) < 0;
221 return std::memcmp(entity1.
value, entity2.
value, size);
226#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
238#if !FASTDDS_IS_BIG_ENDIAN_TARGET
241 const bool result = 0 == memcmp(id1.
value, &id2,
sizeof(id2));
242#if !FASTDDS_IS_BIG_ENDIAN_TARGET
279 std::ostream& output,
282 std::stringstream ss;
284 ss << (int)enI.
value[0] <<
"." << (
int)enI.
value[1] <<
"." << (int)enI.
value[2] <<
"." << (
int)enI.
value[3];
286 return output << ss.str();
293 std::istream::sentry s(input);
299 std::ios_base::iostate excp_mask = input.exceptions();
303 input.exceptions(excp_mask | std::ios_base::failbit | std::ios_base::badbit);
304 input >> std::hex >> hex;
308 input.setstate(std::ios_base::failbit);
313 for (
int i = 1; i < 4; ++i)
315 input >> point >> hex;
316 if ( point !=
'.' || hex > 255 )
318 input.setstate(std::ios_base::failbit);
325 catch (std::ios_base::failure& )
329 input.exceptions(excp_mask);
358const EntityId_t sedp_builtin_publications_secure_writer = ENTITYID_SEDP_BUILTIN_PUBLICATIONS_SECURE_WRITER;
359const EntityId_t sedp_builtin_publications_secure_reader = ENTITYID_SEDP_BUILTIN_PUBLICATIONS_SECURE_READER;
360const EntityId_t sedp_builtin_subscriptions_secure_writer = ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_WRITER;
361const EntityId_t sedp_builtin_subscriptions_secure_reader = ENTITYID_SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_READER;
363const EntityId_t participant_volatile_message_secure_writer_entity_id =
364 ENTITYID_P2P_BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_WRITER;
365const EntityId_t participant_volatile_message_secure_reader_entity_id =
366 ENTITYID_P2P_BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_READER;
368const EntityId_t c_EntityId_WriterLivelinessSecure = ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_SECURE_WRITER;
369const EntityId_t c_EntityId_ReaderLivelinessSecure = ENTITYID_P2P_BUILTIN_PARTICIPANT_MESSAGE_SECURE_READER;
371const EntityId_t c_EntityId_spdp_reliable_participant_secure_reader =
372 ENTITYID_SPDP_RELIABLE_BUILTIN_PARTICIPANT_SECURE_READER;
373const EntityId_t c_EntityId_spdp_reliable_participant_secure_writer =
374 ENTITYID_SPDP_RELIABLE_BUILTIN_PARTICIPANT_SECURE_WRITER;
380#ifdef FASTDDS_STATISTICS
381const EntityId_t monitor_service_status_writer = ENTITYID_MONITOR_SERVICE_WRITER;
392 std::size_t operator ()(
395 return (
static_cast<size_t>(k.
value[0]) << 16) |
396 (
static_cast<size_t>(k.
value[1]) << 8) |
397 static_cast<size_t>(k.
value[2]);
std::istream & operator>>(std::istream &input, EntityId_t &enP)
Definition EntityId_t.hpp:289
const EntityId_t c_EntityId_TypeLookup_request_reader
Definition EntityId_t.hpp:353
const EntityId_t c_EntityId_TypeLookup_request_writer
Definition EntityId_t.hpp:352
const EntityId_t ds_server_virtual_reader
Definition EntityId_t.hpp:378
bool operator==(const BuiltinTransportsOptions &bto1, const BuiltinTransportsOptions &bto2)
Equal to operator.
Definition BuiltinTransports.hpp:79
std::ostream & operator<<(std::ostream &output, BuiltinTransports transports)
Definition BuiltinTransports.hpp:117
const EntityId_t c_EntityId_SPDPReader
Definition EntityId_t.hpp:336
const EntityId_t c_EntityId_SEDPSubReader
Definition EntityId_t.hpp:342
unsigned char octet
Definition Types.hpp:83
const EntityId_t c_EntityId_RTPSParticipant
Definition EntityId_t.hpp:344
const EntityId_t c_EntityId_SPDPWriter
Definition EntityId_t.hpp:337
bool operator!=(const EntityId_t &id1, const EntityId_t &id2)
Guid prefix comparison operator.
Definition EntityId_t.hpp:267
const EntityId_t c_EntityId_TypeLookup_reply_reader
Definition EntityId_t.hpp:355
const EntityId_t participant_stateless_message_reader_entity_id
Definition EntityId_t.hpp:350
const EntityId_t c_EntityId_SEDPPubReader
Definition EntityId_t.hpp:340
const EntityId_t c_EntityId_WriterLiveliness
Definition EntityId_t.hpp:346
const EntityId_t c_EntityId_SEDPPubWriter
Definition EntityId_t.hpp:339
const EntityId_t participant_stateless_message_writer_entity_id
Definition EntityId_t.hpp:349
const EntityId_t c_EntityId_TypeLookup_reply_writer
Definition EntityId_t.hpp:354
const EntityId_t ds_server_virtual_writer
Definition EntityId_t.hpp:377
const EntityId_t c_EntityId_Unknown
Definition EntityId_t.hpp:335
const EntityId_t c_EntityId_ReaderLiveliness
Definition EntityId_t.hpp:347
const EntityId_t c_EntityId_SEDPSubWriter
Definition EntityId_t.hpp:341
Definition EntityId_t.hpp:388
Structure EntityId_t, entity id part of GUID_t.
Definition EntityId_t.hpp:77
EntityId_t(EntityId_t &&id)
Move constructor.
Definition EntityId_t.hpp:111
void reverse()
Definition EntityId_t.hpp:148
EntityId_t()
Default constructor. Unknown entity.
Definition EntityId_t.hpp:81
bool is_writer() const
Definition EntityId_t.hpp:190
bool is_reader() const
Definition EntityId_t.hpp:184
EntityId_t(uint32_t id)
Main constructor.
Definition EntityId_t.hpp:90
static EntityId_t unknown()
Definition EntityId_t.hpp:179
octet value[size]
Definition EntityId_t.hpp:79
EntityId_t(const EntityId_t &id)
Copy constructor.
Definition EntityId_t.hpp:102
uint32_t to_uint32() const
conversion to uint32_t
Definition EntityId_t.hpp:165
static int cmp(const EntityId_t &entity1, const EntityId_t &entity2)
Entity Id compare static method.
Definition EntityId_t.hpp:217