DataWriterQos.hpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. // Copyright 2019 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. * @file DataWriterQos.hpp
  16. */
  17. #ifndef _FASTDDS_DATAWRITERQOS_HPP
  18. #define _FASTDDS_DATAWRITERQOS_HPP
  19. #include <fastdds/dds/core/policy/QosPolicies.hpp>
  20. #include <fastdds/dds/publisher/qos/WriterQos.hpp>
  21. #include <fastdds/dds/publisher/qos/PublisherQos.hpp>
  22. #include <fastdds/dds/core/policy/WriterDataLifecycleQosPolicy.hpp>
  23. #include <fastdds/dds/publisher/qos/PublisherQos.hpp>
  24. #include <fastdds/dds/publisher/qos/WriterQos.hpp>
  25. #include <fastdds/dds/topic/qos/TopicQos.hpp>
  26. #include <fastdds/rtps/attributes/WriterAttributes.h>
  27. namespace eprosima {
  28. namespace fastdds {
  29. namespace dds {
  30. //! Qos Policy to configure the DisablePositiveACKsQos and the writer timing attributes
  31. class RTPSReliableWriterQos
  32. {
  33. public:
  34. /**
  35. * @brief Constructor
  36. */
  37. RTPS_DllAPI RTPSReliableWriterQos()
  38. {
  39. }
  40. /**
  41. * @brief Destructor
  42. */
  43. virtual RTPS_DllAPI ~RTPSReliableWriterQos() = default;
  44. bool operator ==(
  45. const RTPSReliableWriterQos& b) const
  46. {
  47. return (this->times == b.times) &&
  48. (this->disable_positive_acks == b.disable_positive_acks);
  49. }
  50. //!Writer Timing Attributes
  51. fastrtps::rtps::WriterTimes times;
  52. //!Disable positive acks QoS, implemented in the library.
  53. DisablePositiveACKsQosPolicy disable_positive_acks;
  54. };
  55. /**
  56. * Class DataWriterQos, containing all the possible Qos that can be set for a determined DataWriter.
  57. * Although these values can be and are transmitted
  58. * during the Endpoint Discovery Protocol, not all of the behaviour associated with them has been implemented in the library.
  59. * Please consult each of them to check for implementation details and default values.
  60. * @ingroup FASTDDS_QOS_MODULE
  61. */
  62. class DataWriterQos
  63. {
  64. public:
  65. /**
  66. * @brief Constructor
  67. */
  68. RTPS_DllAPI DataWriterQos();
  69. /**
  70. * @brief Destructor
  71. */
  72. RTPS_DllAPI ~DataWriterQos() = default;
  73. RTPS_DllAPI bool operator ==(
  74. const DataWriterQos& b) const
  75. {
  76. return (this->durability_ == b.durability()) &&
  77. (this->durability_service_ == b.durability_service()) &&
  78. (this->deadline_ == b.deadline()) &&
  79. (this->latency_budget_ == b.latency_budget()) &&
  80. (this->liveliness_ == b.liveliness()) &&
  81. (this->reliability_ == b.reliability()) &&
  82. (this->destination_order_ == b.destination_order()) &&
  83. (this->history_ == b.history()) &&
  84. (this->resource_limits_ == b.resource_limits()) &&
  85. (this->transport_priority_ == b.transport_priority()) &&
  86. (this->lifespan_ == b.lifespan()) &&
  87. (this->user_data_ == b.user_data()) &&
  88. (this->ownership_ == b.ownership()) &&
  89. (this->ownership_strength_ == b.ownership_strength()) &&
  90. (this->writer_data_lifecycle_ == b.writer_data_lifecycle()) &&
  91. (this->publish_mode_ == b.publish_mode()) &&
  92. (this->representation_ == b.representation()) &&
  93. (this->properties_ == b.properties()) &&
  94. (this->reliable_writer_qos_ == b.reliable_writer_qos()) &&
  95. (this->endpoint_ == b.endpoint()) &&
  96. (this->writer_resource_limits_ == b.writer_resource_limits()) &&
  97. (this->throughput_controller_ == b.throughput_controller());
  98. }
  99. RTPS_DllAPI WriterQos get_writerqos(
  100. const PublisherQos& pqos,
  101. const TopicQos& tqos) const;
  102. /**
  103. * Getter for DurabilityQosPolicy
  104. * @return DurabilityQosPolicy reference
  105. */
  106. RTPS_DllAPI DurabilityQosPolicy& durability()
  107. {
  108. return durability_;
  109. }
  110. /**
  111. * Getter for DurabilityQosPolicy
  112. * @return DurabilityQosPolicy reference
  113. */
  114. RTPS_DllAPI const DurabilityQosPolicy& durability() const
  115. {
  116. return durability_;
  117. }
  118. /**
  119. * Setter for DurabilityQosPolicy
  120. * @param durability new value for the DurabilityQosPolicy
  121. */
  122. RTPS_DllAPI void durability(
  123. const DurabilityQosPolicy& durability)
  124. {
  125. durability_ = durability;
  126. }
  127. /**
  128. * Getter for DurabilityServiceQosPolicy
  129. * @return DurabilityServiceQosPolicy reference
  130. */
  131. RTPS_DllAPI DurabilityServiceQosPolicy& durability_service()
  132. {
  133. return durability_service_;
  134. }
  135. /**
  136. * Getter for DurabilityServiceQosPolicy
  137. * @return DurabilityServiceQosPolicy reference
  138. */
  139. RTPS_DllAPI const DurabilityServiceQosPolicy& durability_service() const
  140. {
  141. return durability_service_;
  142. }
  143. /**
  144. * Setter for DurabilityServiceQosPolicy
  145. * @param durability_service new value for the DurabilityServiceQosPolicy
  146. */
  147. RTPS_DllAPI void durability_service(
  148. const DurabilityServiceQosPolicy& durability_service)
  149. {
  150. durability_service_ = durability_service;
  151. }
  152. /**
  153. * Getter for DeadlineQosPolicy
  154. * @return DeadlineQosPolicy reference
  155. */
  156. RTPS_DllAPI DeadlineQosPolicy& deadline()
  157. {
  158. return deadline_;
  159. }
  160. /**
  161. * Getter for DeadlineQosPolicy
  162. * @return DeadlineQosPolicy reference
  163. */
  164. RTPS_DllAPI const DeadlineQosPolicy& deadline() const
  165. {
  166. return deadline_;
  167. }
  168. /**
  169. * Setter for DeadlineQosPolicy
  170. * @param deadline new value for the DeadlineQosPolicy
  171. */
  172. RTPS_DllAPI void deadline(
  173. const DeadlineQosPolicy& deadline)
  174. {
  175. deadline_ = deadline;
  176. }
  177. /**
  178. * Getter for LatencyBudgetQosPolicy
  179. * @return LatencyBudgetQosPolicy reference
  180. */
  181. RTPS_DllAPI LatencyBudgetQosPolicy& latency_budget()
  182. {
  183. return latency_budget_;
  184. }
  185. /**
  186. * Getter for LatencyBudgetQosPolicy
  187. * @return LatencyBudgetQosPolicy reference
  188. */
  189. RTPS_DllAPI const LatencyBudgetQosPolicy& latency_budget() const
  190. {
  191. return latency_budget_;
  192. }
  193. /**
  194. * Setter for LatencyBudgetQosPolicy
  195. * @param latency_budget new value for the LatencyBudgetQosPolicy
  196. */
  197. RTPS_DllAPI void latency_budget(
  198. const LatencyBudgetQosPolicy& latency_budget)
  199. {
  200. latency_budget_ = latency_budget;
  201. }
  202. /**
  203. * Getter for LivelinessQosPolicy
  204. * @return LivelinessQosPolicy reference
  205. */
  206. RTPS_DllAPI LivelinessQosPolicy& liveliness()
  207. {
  208. return liveliness_;
  209. }
  210. /**
  211. * Getter for LivelinessQosPolicy
  212. * @return LivelinessQosPolicy reference
  213. */
  214. RTPS_DllAPI const LivelinessQosPolicy& liveliness() const
  215. {
  216. return liveliness_;
  217. }
  218. /**
  219. * Setter for LivelinessQosPolicy
  220. * @param liveliness new value for the LivelinessQosPolicy
  221. */
  222. RTPS_DllAPI void liveliness(
  223. const LivelinessQosPolicy& liveliness)
  224. {
  225. liveliness_ = liveliness;
  226. }
  227. /**
  228. * Getter for ReliabilityQosPolicy
  229. * @return ReliabilityQosPolicy reference
  230. */
  231. RTPS_DllAPI ReliabilityQosPolicy& reliability()
  232. {
  233. return reliability_;
  234. }
  235. /**
  236. * Getter for ReliabilityQosPolicy
  237. * @return ReliabilityQosPolicy reference
  238. */
  239. RTPS_DllAPI const ReliabilityQosPolicy& reliability() const
  240. {
  241. return reliability_;
  242. }
  243. /**
  244. * Setter for ReliabilityQosPolicy
  245. * @param reliability new value for the ReliabilityQosPolicy
  246. */
  247. RTPS_DllAPI void reliability(
  248. const ReliabilityQosPolicy& reliability)
  249. {
  250. reliability_ = reliability;
  251. }
  252. /**
  253. * Getter for DestinationOrderQosPolicy
  254. * @return DestinationOrderQosPolicy reference
  255. */
  256. RTPS_DllAPI DestinationOrderQosPolicy& destination_order()
  257. {
  258. return destination_order_;
  259. }
  260. /**
  261. * Getter for DestinationOrderQosPolicy
  262. * @return DestinationOrderQosPolicy reference
  263. */
  264. RTPS_DllAPI const DestinationOrderQosPolicy& destination_order() const
  265. {
  266. return destination_order_;
  267. }
  268. /**
  269. * Setter for DestinationOrderQosPolicy
  270. * @param destination_order new value for the DestinationOrderQosPolicy
  271. */
  272. RTPS_DllAPI void destination_order(
  273. const DestinationOrderQosPolicy& destination_order)
  274. {
  275. destination_order_ = destination_order;
  276. }
  277. /**
  278. * Getter for HistoryQosPolicy
  279. * @return HistoryQosPolicy reference
  280. */
  281. RTPS_DllAPI HistoryQosPolicy& history()
  282. {
  283. return history_;
  284. }
  285. /**
  286. * Getter for HistoryQosPolicy
  287. * @return HistoryQosPolicy reference
  288. */
  289. RTPS_DllAPI const HistoryQosPolicy& history() const
  290. {
  291. return history_;
  292. }
  293. /**
  294. * Setter for HistoryQosPolicy
  295. * @param history new value for the HistoryQosPolicy
  296. */
  297. RTPS_DllAPI void history(
  298. const HistoryQosPolicy& history)
  299. {
  300. history_ = history;
  301. }
  302. /**
  303. * Getter for ResourceLimitsQosPolicy
  304. * @return ResourceLimitsQosPolicy reference
  305. */
  306. RTPS_DllAPI ResourceLimitsQosPolicy& resource_limits()
  307. {
  308. return resource_limits_;
  309. }
  310. /**
  311. * Getter for ResourceLimitsQosPolicy
  312. * @return ResourceLimitsQosPolicy reference
  313. */
  314. RTPS_DllAPI const ResourceLimitsQosPolicy& resource_limits() const
  315. {
  316. return resource_limits_;
  317. }
  318. /**
  319. * Setter for ResourceLimitsQosPolicy
  320. * @param resource_limits new value for the ResourceLimitsQosPolicy
  321. */
  322. RTPS_DllAPI void resource_limits(
  323. const ResourceLimitsQosPolicy& resource_limits)
  324. {
  325. resource_limits_ = resource_limits;
  326. }
  327. /**
  328. * Getter for TransportPriorityQosPolicy
  329. * @return TransportPriorityQosPolicy reference
  330. */
  331. RTPS_DllAPI TransportPriorityQosPolicy& transport_priority()
  332. {
  333. return transport_priority_;
  334. }
  335. /**
  336. * Getter for TransportPriorityQosPolicy
  337. * @return TransportPriorityQosPolicy reference
  338. */
  339. RTPS_DllAPI const TransportPriorityQosPolicy& transport_priority() const
  340. {
  341. return transport_priority_;
  342. }
  343. /**
  344. * Setter for TransportPriorityQosPolicy
  345. * @param transport_priority new value for the TransportPriorityQosPolicy
  346. */
  347. RTPS_DllAPI void transport_priority(
  348. const TransportPriorityQosPolicy& transport_priority)
  349. {
  350. transport_priority_ = transport_priority;
  351. }
  352. /**
  353. * Getter for LifespanQosPolicy
  354. * @return LifespanQosPolicy reference
  355. */
  356. RTPS_DllAPI LifespanQosPolicy& lifespan()
  357. {
  358. return lifespan_;
  359. }
  360. /**
  361. * Getter for LifespanQosPolicy
  362. * @return LifespanQosPolicy reference
  363. */
  364. RTPS_DllAPI const LifespanQosPolicy& lifespan() const
  365. {
  366. return lifespan_;
  367. }
  368. /**
  369. * Setter for LifespanQosPolicy
  370. * @param lifespan new value for the LifespanQosPolicy
  371. */
  372. RTPS_DllAPI void lifespan(
  373. const LifespanQosPolicy& lifespan)
  374. {
  375. lifespan_ = lifespan;
  376. }
  377. /**
  378. * Getter for UserDataQosPolicy
  379. * @return UserDataQosPolicy reference
  380. */
  381. RTPS_DllAPI UserDataQosPolicy& user_data()
  382. {
  383. return user_data_;
  384. }
  385. /**
  386. * Getter for UserDataQosPolicy
  387. * @return UserDataQosPolicy reference
  388. */
  389. RTPS_DllAPI const UserDataQosPolicy& user_data() const
  390. {
  391. return user_data_;
  392. }
  393. /**
  394. * Setter for UserDataQosPolicy
  395. * @param user_data new value for the UserDataQosPolicy
  396. */
  397. RTPS_DllAPI void user_data(
  398. const UserDataQosPolicy& user_data)
  399. {
  400. user_data_ = user_data;
  401. }
  402. /**
  403. * Getter for OwnershipQosPolicy
  404. * @return OwnershipQosPolicy reference
  405. */
  406. RTPS_DllAPI OwnershipQosPolicy& ownership()
  407. {
  408. return ownership_;
  409. }
  410. /**
  411. * Getter for OwnershipQosPolicy
  412. * @return OwnershipQosPolicy reference
  413. */
  414. RTPS_DllAPI const OwnershipQosPolicy& ownership() const
  415. {
  416. return ownership_;
  417. }
  418. /**
  419. * Setter for OwnershipQosPolicy
  420. * @param ownership new value for the OwnershipQosPolicy
  421. */
  422. RTPS_DllAPI void ownership(
  423. const OwnershipQosPolicy& ownership)
  424. {
  425. ownership_ = ownership;
  426. }
  427. /**
  428. * Getter for OwnershipStrengthQosPolicy
  429. * @return OwnershipStrengthQosPolicy reference
  430. */
  431. RTPS_DllAPI OwnershipStrengthQosPolicy& ownership_strength()
  432. {
  433. return ownership_strength_;
  434. }
  435. /**
  436. * Getter for OwnershipStrengthQosPolicy
  437. * @return OwnershipStrengthQosPolicy reference
  438. */
  439. RTPS_DllAPI const OwnershipStrengthQosPolicy& ownership_strength() const
  440. {
  441. return ownership_strength_;
  442. }
  443. /**
  444. * Setter for OwnershipStrengthQosPolicy
  445. * @param ownership_strength new value for the OwnershipStrengthQosPolicy
  446. */
  447. RTPS_DllAPI void ownership_strength(
  448. const OwnershipStrengthQosPolicy& ownership_strength)
  449. {
  450. ownership_strength_ = ownership_strength;
  451. }
  452. /**
  453. * Getter for WriterDataLifecycleQosPolicy
  454. * @return WriterDataLifecycleQosPolicy reference
  455. */
  456. RTPS_DllAPI WriterDataLifecycleQosPolicy& writer_data_lifecycle()
  457. {
  458. return writer_data_lifecycle_;
  459. }
  460. /**
  461. * Getter for WriterDataLifecycleQosPolicy
  462. * @return WriterDataLifecycleQosPolicy reference
  463. */
  464. RTPS_DllAPI const WriterDataLifecycleQosPolicy& writer_data_lifecycle() const
  465. {
  466. return writer_data_lifecycle_;
  467. }
  468. /**
  469. * Setter for WriterDataLifecycleQosPolicy
  470. * @param writer_data_lifecycle new value for the WriterDataLifecycleQosPolicy
  471. */
  472. RTPS_DllAPI void writer_data_lifecycle(
  473. const WriterDataLifecycleQosPolicy& writer_data_lifecycle)
  474. {
  475. writer_data_lifecycle_ = writer_data_lifecycle;
  476. }
  477. /**
  478. * Getter for PublishModeQosPolicy
  479. * @return PublishModeQosPolicy reference
  480. */
  481. RTPS_DllAPI PublishModeQosPolicy& publish_mode()
  482. {
  483. return publish_mode_;
  484. }
  485. /**
  486. * Getter for PublishModeQosPolicy
  487. * @return PublishModeQosPolicy reference
  488. */
  489. RTPS_DllAPI const PublishModeQosPolicy& publish_mode() const
  490. {
  491. return publish_mode_;
  492. }
  493. /**
  494. * Setter for PublishModeQosPolicy
  495. * @param publish_mode new value for the PublishModeQosPolicy
  496. */
  497. RTPS_DllAPI void publish_mode(
  498. const PublishModeQosPolicy& publish_mode)
  499. {
  500. publish_mode_ = publish_mode;
  501. }
  502. /**
  503. * Getter for DataRepresentationQosPolicy
  504. * @return DataRepresentationQosPolicy reference
  505. */
  506. RTPS_DllAPI DataRepresentationQosPolicy& representation()
  507. {
  508. return representation_;
  509. }
  510. /**
  511. * Getter for DataRepresentationQosPolicy
  512. * @return DataRepresentationQosPolicy reference
  513. */
  514. RTPS_DllAPI const DataRepresentationQosPolicy& representation() const
  515. {
  516. return representation_;
  517. }
  518. /**
  519. * Setter for DataRepresentationQosPolicy
  520. * @param representation new value for the DataRepresentationQosPolicy
  521. */
  522. RTPS_DllAPI void representation(
  523. const DataRepresentationQosPolicy& representation)
  524. {
  525. representation_ = representation;
  526. }
  527. /**
  528. * Getter for PropertyPolicyQos
  529. * @return PropertyPolicyQos reference
  530. */
  531. RTPS_DllAPI PropertyPolicyQos& properties()
  532. {
  533. return properties_;
  534. }
  535. /**
  536. * Getter for PropertyPolicyQos
  537. * @return PropertyPolicyQos reference
  538. */
  539. RTPS_DllAPI const PropertyPolicyQos& properties() const
  540. {
  541. return properties_;
  542. }
  543. /**
  544. * Setter for PropertyPolicyQos
  545. * @param properties new value for the PropertyPolicyQos
  546. */
  547. RTPS_DllAPI void properties(
  548. const PropertyPolicyQos& properties)
  549. {
  550. properties_ = properties;
  551. }
  552. /**
  553. * Getter for RTPSReliableWriterQos
  554. * @return RTPSReliableWriterQos reference
  555. */
  556. RTPS_DllAPI RTPSReliableWriterQos& reliable_writer_qos()
  557. {
  558. return reliable_writer_qos_;
  559. }
  560. /**
  561. * Getter for RTPSReliableWriterQos
  562. * @return RTPSReliableWriterQos reference
  563. */
  564. RTPS_DllAPI const RTPSReliableWriterQos& reliable_writer_qos() const
  565. {
  566. return reliable_writer_qos_;
  567. }
  568. /**
  569. * Setter for RTPSReliableWriterQos
  570. * @param reliable_writer_qos new value for the RTPSReliableWriterQos
  571. */
  572. RTPS_DllAPI void reliable_writer_qos(
  573. const RTPSReliableWriterQos& reliable_writer_qos)
  574. {
  575. reliable_writer_qos_ = reliable_writer_qos;
  576. }
  577. /**
  578. * Getter for RTPSEndpointQos
  579. * @return RTPSEndpointQos reference
  580. */
  581. RTPS_DllAPI RTPSEndpointQos& endpoint()
  582. {
  583. return endpoint_;
  584. }
  585. /**
  586. * Getter for RTPSEndpointQos
  587. * @return RTPSEndpointQos reference
  588. */
  589. RTPS_DllAPI const RTPSEndpointQos& endpoint() const
  590. {
  591. return endpoint_;
  592. }
  593. /**
  594. * Setter for RTPSEndpointQos
  595. * @param endpoint new value for the RTPSEndpointQos
  596. */
  597. RTPS_DllAPI void endpoint(
  598. const RTPSEndpointQos& endpoint)
  599. {
  600. endpoint_ = endpoint;
  601. }
  602. /**
  603. * Getter for WriterResourceLimitsQos
  604. * @return WriterResourceLimitsQos reference
  605. */
  606. RTPS_DllAPI WriterResourceLimitsQos& writer_resource_limits()
  607. {
  608. return writer_resource_limits_;
  609. }
  610. /**
  611. * Getter for WriterResourceLimitsQos
  612. * @return WriterResourceLimitsQos reference
  613. */
  614. RTPS_DllAPI const WriterResourceLimitsQos& writer_resource_limits() const
  615. {
  616. return writer_resource_limits_;
  617. }
  618. /**
  619. * Setter for WriterResourceLimitsQos
  620. * @param writer_resource_limits new value for the WriterResourceLimitsQos
  621. */
  622. RTPS_DllAPI void writer_resource_limits(
  623. const WriterResourceLimitsQos& writer_resource_limits)
  624. {
  625. writer_resource_limits_ = writer_resource_limits;
  626. }
  627. /**
  628. * Getter for ThroughputControllerDescriptor
  629. * @return ThroughputControllerDescriptor reference
  630. */
  631. RTPS_DllAPI fastrtps::rtps::ThroughputControllerDescriptor& throughput_controller()
  632. {
  633. return throughput_controller_;
  634. }
  635. /**
  636. * Getter for ThroughputControllerDescriptor
  637. * @return ThroughputControllerDescriptor reference
  638. */
  639. RTPS_DllAPI const fastrtps::rtps::ThroughputControllerDescriptor& throughput_controller() const
  640. {
  641. return throughput_controller_;
  642. }
  643. /**
  644. * Setter for ThroughputControllerDescriptor
  645. * @param throughput_controller new value for the ThroughputControllerDescriptor
  646. */
  647. RTPS_DllAPI void throughput_controller(
  648. const fastrtps::rtps::ThroughputControllerDescriptor& throughput_controller)
  649. {
  650. throughput_controller_ = throughput_controller;
  651. }
  652. private:
  653. //!Durability Qos, implemented in the library.
  654. DurabilityQosPolicy durability_;
  655. //!Durability Service Qos, NOT implemented in the library.
  656. DurabilityServiceQosPolicy durability_service_;
  657. //!Deadline Qos, implemented in the library.
  658. DeadlineQosPolicy deadline_;
  659. //!Latency Budget Qos, NOT implemented in the library.
  660. LatencyBudgetQosPolicy latency_budget_;
  661. //!Liveliness Qos, implemented in the library.
  662. LivelinessQosPolicy liveliness_;
  663. //!Reliability Qos, implemented in the library.
  664. ReliabilityQosPolicy reliability_;
  665. //!Destination Order Qos, NOT implemented in the library.
  666. DestinationOrderQosPolicy destination_order_;
  667. //!History Qos, implemented in the library.
  668. HistoryQosPolicy history_;
  669. //!Resource Limits Qos, implemented in the library.
  670. ResourceLimitsQosPolicy resource_limits_;
  671. //!Transport Priority Qos, NOT implemented in the library.
  672. TransportPriorityQosPolicy transport_priority_;
  673. //!Lifespan Qos, implemented in the library.
  674. LifespanQosPolicy lifespan_;
  675. //!User Data Qos, implemented in the library.
  676. UserDataQosPolicy user_data_;
  677. //!Ownership Qos, implemented in the library.
  678. OwnershipQosPolicy ownership_;
  679. //!Ownership Strength Qos, implemented in the library.
  680. OwnershipStrengthQosPolicy ownership_strength_;
  681. //!Writer Data Lifecycle Qos, NOT implemented in the library.
  682. WriterDataLifecycleQosPolicy writer_data_lifecycle_;
  683. //!Publication Mode Qos, implemented in the library.
  684. PublishModeQosPolicy publish_mode_;
  685. //!Data Representation Qos, implemented in the library.
  686. DataRepresentationQosPolicy representation_;
  687. //!Property policies
  688. PropertyPolicyQos properties_;
  689. //!RTPS Reliable Writer Qos
  690. RTPSReliableWriterQos reliable_writer_qos_;
  691. //!RTPS Endpoint Qos
  692. RTPSEndpointQos endpoint_;
  693. //!Writer Resource Limits Qos
  694. WriterResourceLimitsQos writer_resource_limits_;
  695. //!Throughput controller
  696. fastrtps::rtps::ThroughputControllerDescriptor throughput_controller_;
  697. };
  698. RTPS_DllAPI extern const DataWriterQos DATAWRITER_QOS_DEFAULT;
  699. } // namespace dds
  700. } // namespace fastdds
  701. } // namespace eprosima
  702. #endif // _FASTDDS_DATAWRITERQOS_HPP