19#ifndef FASTDDS_RTPS_COMMON__SAMPLEIDENTITY_HPP
20#define FASTDDS_RTPS_COMMON__SAMPLEIDENTITY_HPP
22#include <fastdds/rtps/common/Guid.hpp>
23#include <fastdds/rtps/common/SequenceNumber.hpp>
41 : writer_guid_(
GUID_t::unknown())
51 : writer_guid_(sample_id.writer_guid_)
52 , sequence_number_(sample_id.sequence_number_)
61 : writer_guid_(
std::move(sample_id.writer_guid_))
62 , sequence_number_(
std::move(sample_id.sequence_number_))
72 writer_guid_ = sample_id.writer_guid_;
73 sequence_number_ = sample_id.sequence_number_;
83 writer_guid_ = std::move(sample_id.writer_guid_);
84 sequence_number_ = std::move(sample_id.sequence_number_);
94 return (writer_guid_ == sample_id.writer_guid_) && (sequence_number_ == sample_id.sequence_number_);
103 return !(*
this == sample_id);
114 return writer_guid_ < sample.writer_guid_
115 || (writer_guid_ == sample.writer_guid_
116 && sequence_number_ < sample.sequence_number_);
129 writer_guid_ = std::move(guid);
146 sequence_number_ = seq;
153 sequence_number_ = std::move(seq);
159 return sequence_number_;
164 return sequence_number_;
178 friend std::istream& operator >>(
181 friend std::ostream& operator <<(
182 std::ostream& output,
186#ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
198 std::istream::sentry s(input);
202 std::ios_base::iostate excp_mask = input.exceptions();
206 input.exceptions(excp_mask | std::ios_base::failbit | std::ios_base::badbit);
209 input >> sid.writer_guid_ >> sep >> sid.sequence_number_;
213 input.setstate(std::ios_base::failbit);
216 catch (std::ios_base::failure&)
223 input.exceptions(excp_mask);
236 std::ostream& output,
239 output << sid.writer_guid_ <<
'|' << sid.sequence_number_;
This class is used to specify a sample.
Definition SampleIdentity.hpp:34
SampleIdentity(const SampleIdentity &sample_id)
Copy constructor.
Definition SampleIdentity.hpp:49
static SampleIdentity unknown()
Definition SampleIdentity.hpp:167
SampleIdentity()
Default constructor.
Definition SampleIdentity.hpp:40
SampleIdentity & sequence_number(const SequenceNumber_t &seq)
Definition SampleIdentity.hpp:143
const GUID_t & writer_guid() const
Definition SampleIdentity.hpp:133
SampleIdentity & writer_guid(GUID_t &&guid)
Definition SampleIdentity.hpp:126
GUID_t & writer_guid()
Definition SampleIdentity.hpp:138
SampleIdentity & sequence_number(SequenceNumber_t &&seq)
Definition SampleIdentity.hpp:150
SequenceNumber_t & sequence_number()
Definition SampleIdentity.hpp:162
SampleIdentity(SampleIdentity &&sample_id)
Move constructor.
Definition SampleIdentity.hpp:59
SampleIdentity & writer_guid(const GUID_t &guid)
Definition SampleIdentity.hpp:119
const SequenceNumber_t & sequence_number() const
Definition SampleIdentity.hpp:157
std::istream & operator>>(std::istream &input, EntityId_t &enP)
Definition EntityId_t.hpp:289
std::ostream & operator<<(std::ostream &output, BuiltinTransports transports)
Definition BuiltinTransports.hpp:117
Definition EntityId_t.hpp:388
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition Guid.hpp:40
static GUID_t unknown() noexcept
Definition Guid.hpp:138
Structure SequenceNumber_t, different for each change in the same writer.
Definition SequenceNumber.hpp:38
static SequenceNumber_t unknown() noexcept
Definition SequenceNumber.hpp:123