OpenDDS  Snapshot(2023/04/28-20:55)
QOS_DwDrTp_Base_T.cpp
Go to the documentation of this file.
1 #include "dds/DdsDcpsInfrastructureC.h"
2 #include "QOS_Common.h"
3 #include "dds/DCPS/debug.h"
4 
6 
7 template <typename XML_QOS_TYPE, typename DDS_QOS_TYPE>
9 {
10 }
11 
12 template <typename XML_QOS_TYPE, typename DDS_QOS_TYPE>
14 {
15 }
16 
17 template <typename XML_QOS_TYPE, typename DDS_QOS_TYPE>
18 void
19 QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos(DDS_QOS_TYPE& dds_qos, const XML_QOS_TYPE xml_qos)
20 {
21  if (xml_qos->durability_p())
22  {
23  if (xml_qos->durability().kind_p())
24  {
25  QosCommon::get_durability_kind(xml_qos->durability().kind(),
26  dds_qos.durability.kind);
27 
29  {
31  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
32  ACE_TEXT("set durability to <%d>\n"),
33  dds_qos.durability.kind));
34  }
35  }
36  }
37  if (xml_qos->deadline_p())
38  {
39  const ACE_TString sec(xml_qos->deadline().period().sec().c_str());
40  const ACE_TString nsec(xml_qos->deadline().period().nanosec().c_str());
41 
42  QosCommon::get_duration(dds_qos.deadline.period,
43  sec.c_str(),
44  nsec.c_str());
45 
47  {
49  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
50  ACE_TEXT("Set deadline to <%d:%u>\n"),
51  dds_qos.deadline.period.sec,
52  dds_qos.deadline.period.nanosec));
53  }
54  }
55  if (xml_qos->latency_budget_p())
56  {
57  const ACE_TString sec(xml_qos->latency_budget().duration().sec().c_str());
58  const ACE_TString nsec(xml_qos->latency_budget().duration().nanosec().c_str());
59 
60  QosCommon::get_duration(dds_qos.latency_budget.duration,
61  sec.c_str(),
62  nsec.c_str());
63 
65  {
67  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
68  ACE_TEXT("Set latency_budget to <%d:%u>\n"),
69  dds_qos.latency_budget.duration.sec, \
70  dds_qos.latency_budget.duration.nanosec));
71  }
72  }
73  if (xml_qos->liveliness_p())
74  {
75  if (xml_qos->liveliness().kind_p())
76  {
77  QosCommon::get_liveliness_kind(xml_qos->liveliness().kind(),
78  dds_qos.liveliness.kind);
79 
81  {
83  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
84  ACE_TEXT("Set liveliness_kind to <%d>\n"),
85  dds_qos.liveliness.kind));
86  }
87  }
88  if (xml_qos->liveliness().lease_duration_p())
89  {
90  const ACE_TString sec(xml_qos->liveliness().lease_duration().sec().c_str());
91  const ACE_TString nsec(xml_qos->liveliness().lease_duration().nanosec().c_str());
92 
93  QosCommon::get_duration(dds_qos.liveliness.lease_duration,
94  sec.c_str(),
95  nsec.c_str());
96 
98  {
100  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
101  ACE_TEXT("Set liveliness lease_duration to <%d:%u>\n"),
102  dds_qos.liveliness.lease_duration.sec,
103  dds_qos.liveliness.lease_duration.nanosec));
104  }
105  }
106  }
107  if (xml_qos->reliability_p())
108  {
109  if (xml_qos->reliability().kind_p())
110  {
111  QosCommon::get_realiability_kind(xml_qos->reliability().kind(),
112  dds_qos.reliability.kind);
113 
115  {
117  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
118  ACE_TEXT("Set reliability_kind to <%d>\n"),
119  dds_qos.reliability.kind));
120  }
121  }
122  if (xml_qos->reliability().max_blocking_time_p())
123  {
124  const ACE_TString sec(xml_qos->reliability().max_blocking_time().sec().c_str());
125  const ACE_TString nsec(xml_qos->reliability().max_blocking_time().nanosec().c_str());
126 
127  QosCommon::get_duration(dds_qos.reliability.max_blocking_time,
128  sec.c_str(),
129  nsec.c_str());
130 
132  {
134  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
135  ACE_TEXT("Set reliability max_blocking_time to <%d:%u>\n"),
136  dds_qos.reliability.max_blocking_time.sec,
137  dds_qos.reliability.max_blocking_time.nanosec));
138  }
139  }
140  }
141  if (xml_qos->destination_order_p())
142  {
143  QosCommon::get_destination_order_kind(xml_qos->destination_order().kind(),
144  dds_qos.destination_order.kind);
145 
147  {
149  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
150  ACE_TEXT("Set destination_order to <%d>\n"),
151  dds_qos.destination_order.kind));
152  }
153  }
154  if (xml_qos->history_p())
155  {
156  if (xml_qos->history().kind_p())
157  {
158  QosCommon::get_history_kind(xml_qos->history().kind(),
159  dds_qos.history.kind);
160 
162  {
164  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
165  ACE_TEXT("Set history to <%d>\n"),
166  dds_qos.history.kind));
167  }
168  }
169  if (xml_qos->history().depth_p())
170  {
171  dds_qos.history.depth = static_cast<CORBA::Long>(xml_qos->history().depth());
172 
174  {
176  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
177  ACE_TEXT("Set history depth to <%u>\n"),
178  dds_qos.history.depth));
179  }
180  }
181  }
182  if (xml_qos->resource_limits_p())
183  {
184  if (xml_qos->resource_limits().max_samples_p())
185  {
186  const ACE_TString max_samples(xml_qos->resource_limits().max_samples().c_str());
187 
188  dds_qos.resource_limits.max_samples =
190 
192  {
194  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
195  ACE_TEXT("Set Resource Limits max_samples to <%d>\n"),
196  dds_qos.resource_limits.max_samples));
197  }
198  }
199  if (xml_qos->resource_limits().max_instances_p())
200  {
201  const ACE_TString max_instances(xml_qos->resource_limits().max_instances().c_str());
202 
203  dds_qos.resource_limits.max_instances =
204  QosCommon::get_qos_long(max_instances.c_str());
205 
207  {
209  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
210  ACE_TEXT("Set Resource Limits max_instances to <%d>\n"),
211  dds_qos.resource_limits.max_instances));
212  }
213  }
214  if (xml_qos->resource_limits().max_samples_per_instance_p())
215  {
216  const ACE_TString max_samples_per_instance(xml_qos->resource_limits().max_samples_per_instance().c_str());
217 
218  dds_qos.resource_limits.max_samples_per_instance =
219  QosCommon::get_qos_long(max_samples_per_instance.c_str());
220 
222  {
224  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
225  ACE_TEXT("Set Resource Limits max_samples_per_instance to <%d>\n"),
226  dds_qos.resource_limits.max_samples_per_instance));
227  }
228  }
229  }
230  if (xml_qos->ownership_p())
231  {
232  QosCommon::get_ownership_kind(xml_qos->ownership().kind(),
233  dds_qos.ownership.kind);
234 
236  {
238  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
239  ACE_TEXT("Set ownership to <%d>\n"),
240  dds_qos.ownership.kind));
241  }
242  }
243  if (xml_qos->representation_p())
244  {
245  if (xml_qos->representation().value_p())
246  {
247  dds_qos.representation.value.length(static_cast<CORBA::ULong>(xml_qos->representation().value().count_element()));
248  CORBA::ULong pos = 0;
249  for (::dds::dataRepresentationIdSeq::element_const_iterator it = xml_qos->representation().value().begin_element();
250  it != xml_qos->representation().value().end_element();
251  ++it, ++pos)
252  {
253  QosCommon::get_data_presentation_id_kind(*(it->get()), dds_qos.representation.value[pos]);
254 
256  {
258  ACE_TEXT("QOS_DwDrTp_Base_T<XML_QOS_TYPE, DDS_QOS_TYPE>::read_qos - ")
259  ACE_TEXT("Data representation <%d> inserted in representation at position <%u>\n"),
260  dds_qos.representation.value[pos], pos));
261  }
262  }
263  }
264  }
265 }
266 
#define ACE_DEBUG(X)
ACE_CDR::Long Long
static void get_data_presentation_id_kind(::dds::dataRepresentationIdKind kind, ::DDS::DataRepresentationId_t &dds_kind)
Definition: QOS_Common.cpp:203
static void get_realiability_kind(const dds::reliabilityKind kind, ::DDS::ReliabilityQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:115
static void get_ownership_kind(::dds::ownershipKind kind, ::DDS::OwnershipQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:159
static void get_destination_order_kind(const ::dds::destinationOrderKind kind, ::DDS::DestinationOrderQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:137
ACE_CDR::ULong ULong
LM_TRACE
static void get_durability_kind(const ::dds::durabilityKind kind, ::DDS::DurabilityQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:6
static void get_liveliness_kind(const ::dds::livelinessKind kind, ::DDS::LivelinessQosPolicyKind &dds_kind)
Definition: QOS_Common.cpp:90
void read_qos(DDS_QOS_TYPE &, const XML_QOS_TYPE)
ACE_TEXT("TCP_Factory")
local interface<%TYPE%> inout ::DDS::SampleInfoSeq in long max_samples
Definition: IDLTemplate.txt:72
::CORBA::Long get_qos_long(const ACE_TCHAR *value)
Definition: QOS_Common.cpp:78
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
#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