Fast DDS  Version 3.6.1.0
Fast DDS
AnnotationDescriptor.hpp
1 // Copyright 2023 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 
15 #ifndef FASTDDS_DDS_XTYPES_DYNAMIC_TYPES__ANNOTATIONDESCRIPTOR_HPP
16 #define FASTDDS_DDS_XTYPES_DYNAMIC_TYPES__ANNOTATIONDESCRIPTOR_HPP
17 
18 #include <fastdds/dds/core/ReturnCode.hpp>
19 #include <fastdds/dds/xtypes/dynamic_types/Types.hpp>
20 #include <fastdds/fastdds_dll.hpp>
21 
22 namespace eprosima {
23 namespace fastdds {
24 namespace dds {
25 
26 class DynamicType;
27 
28 class FASTDDS_EXPORTED_API AnnotationDescriptor
29 {
30 public:
31 
33 
38  virtual traits<DynamicType>::ref_type type() const = 0;
39 
45 
50  virtual void type(
52 
60  ObjectName& value,
61  const ObjectName& key) = 0;
62 
69  Parameters& value) = 0;
70 
78  const ObjectName& key,
79  const ObjectName& value) = 0;
80 
90 
96  virtual bool equals(
98 
104  virtual bool is_consistent() = 0;
105 
106 protected:
107 
108  AnnotationDescriptor() = default;
109 
111  const AnnotationDescriptor&) = default;
112 
114  AnnotationDescriptor&&) = default;
115 
116  virtual ~AnnotationDescriptor() = default;
117 
118 private:
119 
120  AnnotationDescriptor& operator =(
121  const AnnotationDescriptor&) = delete;
122 
123  AnnotationDescriptor& operator =(
124  AnnotationDescriptor&&) = delete;
125 };
126 
127 } // namespace dds
128 } // namespace fastdds
129 } // namespace eprosima
130 
131 #endif // FASTDDS_DDS_XTYPES_DYNAMIC_TYPES__ANNOTATIONDESCRIPTOR_HPP
Definition: AnnotationDescriptor.hpp:29
AnnotationDescriptor(AnnotationDescriptor &&)=default
typename traits< AnnotationDescriptor >::ref_type _ref_type
Definition: AnnotationDescriptor.hpp:32
virtual bool is_consistent()=0
Indicates whether the states of all of this descriptor's properties are consistent according with the...
AnnotationDescriptor(const AnnotationDescriptor &)=default
virtual ReturnCode_t copy_from(traits< AnnotationDescriptor >::ref_type descriptor)=0
Overwrites the contents of this descriptor with those of another descriptor (see [standard] 7....
virtual ReturnCode_t set_value(const ObjectName &key, const ObjectName &value)=0
Setter given a key for the value property.
virtual traits< DynamicType >::ref_type type() const =0
Returns a reference to the type.
virtual ReturnCode_t get_value(ObjectName &value, const ObjectName &key)=0
Getter given a key for the value property.
virtual bool equals(traits< AnnotationDescriptor >::ref_type descriptor)=0
State comparison according with the [standard] sections 7.5.2.3.2.
virtual ReturnCode_t get_all_value(Parameters &value)=0
Getter for all the values.
virtual traits< DynamicType >::ref_type & type()=0
Returns a reference to the type.
virtual void type(traits< DynamicType >::ref_type type)=0
Modifies the underlying type reference.
Definition: DomainParticipant.hpp:46
std::map< ObjectName, ObjectName > Parameters
Definition: dynamic_language_binding.hpp:100
int32_t ReturnCode_t
Definition: DDSReturnCode.hpp:59
eprosima::fastcdr::fixed_string< 256 > ObjectName
Definition: dynamic_language_binding.hpp:66
typename ::std::shared_ptr< T > ref_type
Definition: type_traits.hpp:29