Fast DDS  Version 3.6.1.0
Fast DDS
OriginalWriterInfo.hpp
1 // Copyright 2025 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
19 #ifndef FASTDDS_RTPS_COMMON__ORIGINALWRITERINFO_HPP
20 #define FASTDDS_RTPS_COMMON__ORIGINALWRITERINFO_HPP
21 
22 #include <fastdds/rtps/common/Guid.hpp>
23 #include <fastdds/rtps/common/SequenceNumber.hpp>
24 
25 namespace eprosima {
26 namespace fastdds {
27 namespace rtps {
28 
29 
30 class FASTDDS_EXPORTED_API OriginalWriterInfo
31 {
32 public:
33 
34  OriginalWriterInfo() = default;
35 
37  const GUID_t& original_writer_guid,
38  const SequenceNumber_t& sequence_number)
39  : original_writer_guid_(original_writer_guid)
40  , sequence_number_(sequence_number)
41  {
42  }
43 
45  GUID_t&& original_writer_guid,
46  SequenceNumber_t&& sequence_number)
47  : original_writer_guid_(std::move(original_writer_guid))
48  , sequence_number_(std::move(sequence_number))
49  {
50  }
51 
53  const OriginalWriterInfo& other) = default;
54 
56  OriginalWriterInfo&& other) = default;
57 
58  OriginalWriterInfo& operator =(
59  const OriginalWriterInfo& other) = default;
60 
61  OriginalWriterInfo& operator =(
62  OriginalWriterInfo&& other) = default;
63 
64 
66  {
67  return original_writer_guid_;
68  }
69 
71  {
72  return original_writer_guid_;
73  }
74 
76  const GUID_t& guid)
77  {
78  original_writer_guid_ = guid;
79  }
80 
82  GUID_t&& guid)
83  {
84  original_writer_guid_ = std::move(guid);
85  }
86 
88  {
89  return sequence_number_;
90  }
91 
93  {
94  return sequence_number_;
95  }
96 
98  const SequenceNumber_t& seq)
99  {
100  sequence_number_ = seq;
101  }
102 
104  SequenceNumber_t&& seq)
105  {
106  sequence_number_ = std::move(seq);
107  }
108 
110  {
111  return OriginalWriterInfo();
112  }
113 
115  const OriginalWriterInfo& other) const
116  {
117  return (original_writer_guid_ == other.original_writer_guid_) &&
118  (sequence_number_ == other.sequence_number_);
119  }
120 
122  const OriginalWriterInfo& other) const
123  {
124  return !(*this == other);
125  }
126 
127 private:
128 
129  GUID_t original_writer_guid_ = GUID_t::unknown();
130 
131  SequenceNumber_t sequence_number_ = SequenceNumber_t::unknown();
132 };
133 
134 } //namespace rtps
135 } //namespace fastdds
136 } //namespace eprosima
137 #endif // ifndef FASTDDS_RTPS_COMMON__ORIGINALWRITERINFO_HPP
Definition: OriginalWriterInfo.hpp:31
static OriginalWriterInfo unknown()
Definition: OriginalWriterInfo.hpp:109
GUID_t & original_writer_guid()
Definition: OriginalWriterInfo.hpp:70
OriginalWriterInfo(OriginalWriterInfo &&other)=default
SequenceNumber_t & sequence_number()
Definition: OriginalWriterInfo.hpp:92
void sequence_number(SequenceNumber_t &&seq)
Definition: OriginalWriterInfo.hpp:103
const SequenceNumber_t & sequence_number() const
Definition: OriginalWriterInfo.hpp:87
void original_writer_guid(GUID_t &&guid)
Definition: OriginalWriterInfo.hpp:81
void sequence_number(const SequenceNumber_t &seq)
Definition: OriginalWriterInfo.hpp:97
void original_writer_guid(const GUID_t &guid)
Definition: OriginalWriterInfo.hpp:75
const GUID_t & original_writer_guid() const
Definition: OriginalWriterInfo.hpp:65
OriginalWriterInfo(GUID_t &&original_writer_guid, SequenceNumber_t &&sequence_number)
Definition: OriginalWriterInfo.hpp:44
OriginalWriterInfo(const OriginalWriterInfo &other)=default
OriginalWriterInfo(const GUID_t &original_writer_guid, const SequenceNumber_t &sequence_number)
Definition: OriginalWriterInfo.hpp:36
bool operator!=(const EntityId_t &id1, const EntityId_t &id2)
Guid prefix comparison operator.
Definition: EntityId_t.hpp:267
bool operator==(const BuiltinTransportsOptions &bto1, const BuiltinTransportsOptions &bto2)
Equal to operator.
Definition: BuiltinTransports.hpp:79
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