OpenDDS  Snapshot(2023/04/28-20:55)
QOS_Common.cpp
Go to the documentation of this file.
1 #include "QOS_Common.h"
2 
4 
5 void
6 QosCommon::get_durability_kind(const ::dds::durabilityKind kind,
8 {
9  switch (kind.integral())
10  {
11  case ::dds::durabilityKind::VOLATILE_DURABILITY_QOS_l:
13  break;
14  case ::dds::durabilityKind::TRANSIENT_LOCAL_DURABILITY_QOS_l:
16  break;
17  case ::dds::durabilityKind::TRANSIENT_DURABILITY_QOS_l:
19  break;
20  case ::dds::durabilityKind::PERSISTENT_DURABILITY_QOS_l:
22  break;
23  default:
25  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_durability_kind - ")
26  ACE_TEXT("Unknown durability kind found <%d>; returning VOLATILE_DURABILITY_QOS\n"),
27  kind.integral()));
29  break;
30  }
31 }
32 
33 void
34 QosCommon::get_history_kind(const ::dds::historyKind kind,
35  ::DDS::HistoryQosPolicyKind& dds_kind)
36 {
37  switch (kind.integral())
38  {
39  case ::dds::historyKind::KEEP_ALL_HISTORY_QOS_l:
40  dds_kind = ::DDS::KEEP_ALL_HISTORY_QOS;
41  break;
42  case ::dds::historyKind::KEEP_LAST_HISTORY_QOS_l:
44  break;
45  default:
47  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_history_kind - ")
48  ACE_TEXT("Unknown history kind found <%d>; returning KEEP_ALL_HISTORY_QOS\n"),
49  kind.integral()));
50  dds_kind = ::DDS::KEEP_ALL_HISTORY_QOS;
51  break;
52  }
53 }
54 
55 void
56 QosCommon::get_duration(::DDS::Duration_t& duration, const ACE_TCHAR * sec, const ACE_TCHAR * nsec)
57 {
58  if (sec != 0) {
59  if (ACE_OS::strcmp(sec, ACE_TEXT("DURATION_INFINITY")) == 0 ||
60  ACE_OS::strcmp(sec, ACE_TEXT("DURATION_INFINITE_SEC")) == 0) {
61  duration.sec = 0x7fffffff;
62  } else {
63  duration.sec = ACE_OS::atoi(sec);
64  }
65  }
66 
67  if (nsec != 0) {
68  if (ACE_OS::strcmp(nsec, ACE_TEXT("DURATION_INFINITY")) == 0 ||
69  ACE_OS::strcmp(nsec, ACE_TEXT("DURATION_INFINITE_NSEC")) == 0) {
70  duration.nanosec = 0x7fffffff;
71  } else {
72  duration.nanosec = ACE_OS::atoi(nsec);
73  }
74  }
75 }
76 
79 {
80  if (value == 0) {
81  return 0;
82  } else if (ACE_OS::strcmp(value, ACE_TEXT("LENGTH_UNLIMITED")) == 0) {
83  return -1;
84  } else {
85  return ACE_OS::atoi(value);
86  }
87 }
88 
89 void
90 QosCommon::get_liveliness_kind(const ::dds::livelinessKind kind,
91  ::DDS::LivelinessQosPolicyKind& dds_kind)
92 {
93  switch (kind.integral())
94  {
95  case ::dds::livelinessKind::AUTOMATIC_LIVELINESS_QOS_l:
97  break;
98  case ::dds::livelinessKind::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS_l:
100  break;
101  case ::dds::livelinessKind::MANUAL_BY_TOPIC_LIVELINESS_QOS_l:
103  break;
104  default:
106  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_liveliness_kind - ")
107  ACE_TEXT("Unknown liveliness kind found <%d>; returning AUTOMATIC_LIVELINESS_QOS\n"),
108  kind.integral()));
110  break;
111  }
112 }
113 
114 void
115 QosCommon::get_realiability_kind(const ::dds::reliabilityKind kind,
116  ::DDS::ReliabilityQosPolicyKind& dds_kind)
117 {
118  switch (kind.integral())
119  {
120  case ::dds::reliabilityKind::BEST_EFFORT_RELIABILITY_QOS_l:
122  break;
123  case ::dds::reliabilityKind::RELIABLE_RELIABILITY_QOS_l:
125  break;
126  default:
128  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_liveliness_kind - ")
129  ACE_TEXT("Unknown reliability kind found <%d>; returning BEST_EFFORT_RELIABILITY_QOS\n"),
130  kind.integral()));
132  break;
133  }
134 }
135 
136 void
137 QosCommon::get_destination_order_kind(const ::dds::destinationOrderKind kind,
139 {
140  switch (kind.integral())
141  {
142  case ::dds::destinationOrderKind::BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS_l:
144  break;
145  case ::dds::destinationOrderKind::BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS_l:
147  break;
148  default:
150  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_destination_order_kind - ")
151  ACE_TEXT("Unknown destination order kind found <%d>; returning BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS\n"),
152  kind.integral()));
154  break;
155  }
156 }
157 
158 void
159 QosCommon::get_ownership_kind(const ::dds::ownershipKind kind,
160  ::DDS::OwnershipQosPolicyKind& dds_kind)
161 {
162  switch (kind.integral())
163  {
164  case ::dds::ownershipKind::SHARED_OWNERSHIP_QOS_l:
165  dds_kind = ::DDS::SHARED_OWNERSHIP_QOS;
166  break;
167  case ::dds::ownershipKind::EXCLUSIVE_OWNERSHIP_QOS_l:
169  break;
170  default:
172  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_ownership_kind - ")
173  ACE_TEXT("Unknown ownership kind found <%d>; returning SHARED_OWNERSHIP_QOS\n"),
174  kind.integral()));
175  dds_kind = ::DDS::SHARED_OWNERSHIP_QOS;
176  break;
177  }
178 }
179 
180 void
181 QosCommon::get_type_consistency_kind(const ::dds::typeConsistencyKind kind,
183 {
184  switch (kind.integral())
185  {
186  case ::dds::typeConsistencyKind::DISALLOW_TYPE_COERCION_l:
188  break;
189  case ::dds::typeConsistencyKind::ALLOW_TYPE_COERCION_l:
190  dds_kind = ::DDS::ALLOW_TYPE_COERCION;
191  break;
192  default:
194  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_type_consistency_kind - ")
195  ACE_TEXT("Unknown type consistency kind found <%d>; returning DISALLOW_TYPE_COERCION\n"),
196  kind.integral()));
198  break;
199  }
200 }
201 
202 void
203 QosCommon::get_data_presentation_id_kind(const ::dds::dataRepresentationIdKind kind,
204  ::DDS::DataRepresentationId_t& dds_kind)
205 {
206  switch (kind.integral())
207  {
208  case ::dds::dataRepresentationIdKind::XCDR_DATA_REPRESENTATION_l:
210  break;
211  case ::dds::dataRepresentationIdKind::XML_DATA_REPRESENTATION_l:
213  break;
214  case ::dds::dataRepresentationIdKind::XCDR2_DATA_REPRESENTATION_l:
216  break;
217  case ::dds::dataRepresentationIdKind::UNALIGNED_CDR_DATA_REPRESENTATION_l:
219  break;
220  default:
222  ACE_TEXT("(%P|%t) ERROR: QosCommon::get_data_presentation_id_kind - ")
223  ACE_TEXT("Unknown data presentation kind found <%d>; returning XCDR2_DATA_REPRESENTATION\n"),
224  kind.integral()));
226  break;
227  }
228 }
229 
ACE_CDR::Long Long
static void get_data_presentation_id_kind(::dds::dataRepresentationIdKind kind, ::DDS::DataRepresentationId_t &dds_kind)
Definition: QOS_Common.cpp:203
DestinationOrderQosPolicyKind
#define ACE_ERROR(X)
const LogLevel::Value value
Definition: debug.cpp:61
static void get_type_consistency_kind(::dds::typeConsistencyKind kind, ::DDS::TypeConsistencyEnforcementQosPolicyKind_t &dds_kind)
Definition: QOS_Common.cpp:181
HistoryQosPolicyKind
static void get_realiability_kind(const dds::reliabilityKind kind, ::DDS::ReliabilityQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:115
const DataRepresentationId_t XCDR_DATA_REPRESENTATION
static void get_ownership_kind(::dds::ownershipKind kind, ::DDS::OwnershipQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:159
OwnershipQosPolicyKind
const TypeConsistencyEnforcementQosPolicyKind_t ALLOW_TYPE_COERCION
static void get_destination_order_kind(const ::dds::destinationOrderKind kind, ::DDS::DestinationOrderQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:137
const DataRepresentationId_t XCDR2_DATA_REPRESENTATION
unsigned long nanosec
Definition: DdsDcpsCore.idl:69
char ACE_TCHAR
static void get_durability_kind(const ::dds::durabilityKind kind, ::DDS::DurabilityQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:6
DurabilityQosPolicyKind
const DataRepresentationId_t XML_DATA_REPRESENTATION
ReliabilityQosPolicyKind
const DDS::DataRepresentationId_t UNALIGNED_CDR_DATA_REPRESENTATION
int strcmp(const char *s, const char *t)
static void get_liveliness_kind(const ::dds::livelinessKind kind, ::DDS::LivelinessQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:90
ACE_TEXT("TCP_Factory")
int atoi(const char *s)
::CORBA::Long get_qos_long(const ACE_TCHAR *value)
Definition: QOS_Common.cpp:78
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
static void get_history_kind(const ::dds::historyKind kind, ::DDS::HistoryQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:34
static void get_duration(::DDS::Duration_t &duration, const ACE_TCHAR *sec, const ACE_TCHAR *nsec)
Definition: QOS_Common.cpp:56
short DataRepresentationId_t
LM_ERROR
short TypeConsistencyEnforcementQosPolicyKind_t
const TypeConsistencyEnforcementQosPolicyKind_t DISALLOW_TYPE_COERCION
LivelinessQosPolicyKind