Coverage Report

Created: 2022-08-24 06:19

/src/Fast-DDS/include/fastdds/dds/publisher/qos/DataWriterQos.hpp
Line
Count
Source (jump to first uncovered line)
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
/**
16
 * @file DataWriterQos.hpp
17
 */
18
19
20
#ifndef _FASTDDS_DATAWRITERQOS_HPP
21
#define _FASTDDS_DATAWRITERQOS_HPP
22
23
#include <fastdds/dds/core/policy/QosPolicies.hpp>
24
#include <fastdds/dds/publisher/qos/WriterQos.hpp>
25
#include <fastdds/dds/publisher/qos/PublisherQos.hpp>
26
#include <fastdds/dds/core/policy/WriterDataLifecycleQosPolicy.hpp>
27
#include <fastdds/dds/publisher/qos/PublisherQos.hpp>
28
#include <fastdds/dds/publisher/qos/WriterQos.hpp>
29
#include <fastdds/dds/topic/qos/TopicQos.hpp>
30
#include <fastdds/rtps/attributes/WriterAttributes.h>
31
32
namespace eprosima {
33
namespace fastdds {
34
namespace dds {
35
36
//! Qos Policy to configure the DisablePositiveACKsQos and the writer timing attributes
37
class RTPSReliableWriterQos
38
{
39
public:
40
41
    /**
42
     * @brief Constructor
43
     */
44
    RTPS_DllAPI RTPSReliableWriterQos()
45
2
    {
46
2
    }
47
48
    /**
49
     * @brief Destructor
50
     */
51
0
    virtual RTPS_DllAPI ~RTPSReliableWriterQos() = default;
52
53
    bool operator ==(
54
            const RTPSReliableWriterQos& b) const
55
0
    {
56
0
        return (this->times == b.times) &&
57
0
               (this->disable_positive_acks == b.disable_positive_acks);
58
0
    }
59
60
    //!Writer Timing Attributes
61
    fastrtps::rtps::WriterTimes times;
62
63
    //!Disable positive acks QoS, implemented in the library.
64
    DisablePositiveACKsQosPolicy disable_positive_acks;
65
66
    //! Disable heartbeat piggyback mechanism.
67
    bool disable_heartbeat_piggyback = false;
68
};
69
70
/**
71
 * Class DataWriterQos, containing all the possible Qos that can be set for a determined DataWriter.
72
 * Although these values can be  and are transmitted
73
 * during the Endpoint Discovery Protocol, not all of the behaviour associated with them has been implemented in the library.
74
 * Please consult each of them to check for implementation details and default values.
75
 *
76
 * @ingroup FASTDDS_QOS_MODULE
77
 */
78
class DataWriterQos
79
{
80
public:
81
82
    /**
83
     * @brief Constructor
84
     */
85
    RTPS_DllAPI DataWriterQos();
86
87
    /**
88
     * @brief Destructor
89
     */
90
0
    RTPS_DllAPI ~DataWriterQos() = default;
91
92
    RTPS_DllAPI bool operator ==(
93
            const DataWriterQos& b) const
94
0
    {
95
0
        return (this->durability_ == b.durability()) &&
96
0
               (this->durability_service_ == b.durability_service()) &&
97
0
               (this->deadline_ == b.deadline()) &&
98
0
               (this->latency_budget_ == b.latency_budget()) &&
99
0
               (this->liveliness_ == b.liveliness()) &&
100
0
               (this->reliability_ == b.reliability()) &&
101
0
               (this->destination_order_ == b.destination_order()) &&
102
0
               (this->history_ == b.history()) &&
103
0
               (this->resource_limits_ == b.resource_limits()) &&
104
0
               (this->transport_priority_ == b.transport_priority()) &&
105
0
               (this->lifespan_ == b.lifespan()) &&
106
0
               (this->user_data_ == b.user_data()) &&
107
0
               (this->ownership_ == b.ownership()) &&
108
0
               (this->ownership_strength_ == b.ownership_strength()) &&
109
0
               (this->writer_data_lifecycle_ == b.writer_data_lifecycle()) &&
110
0
               (this->publish_mode_ == b.publish_mode()) &&
111
0
               (this->representation_ == b.representation()) &&
112
0
               (this->properties_ == b.properties()) &&
113
0
               (this->reliable_writer_qos_ == b.reliable_writer_qos()) &&
114
0
               (this->endpoint_ == b.endpoint()) &&
115
0
               (this->writer_resource_limits_ == b.writer_resource_limits()) &&
116
0
               (this->throughput_controller_ == b.throughput_controller()) &&
117
0
               (this->data_sharing_ == b.data_sharing());
118
0
    }
119
120
    RTPS_DllAPI WriterQos get_writerqos(
121
            const PublisherQos& pqos,
122
            const TopicQos& tqos) const;
123
124
    /**
125
     * Getter for DurabilityQosPolicy
126
     *
127
     * @return DurabilityQosPolicy reference
128
     */
129
    RTPS_DllAPI DurabilityQosPolicy& durability()
130
0
    {
131
0
        return durability_;
132
0
    }
133
134
    /**
135
     * Getter for DurabilityQosPolicy
136
     *
137
     * @return DurabilityQosPolicy reference
138
     */
139
    RTPS_DllAPI const DurabilityQosPolicy& durability() const
140
0
    {
141
0
        return durability_;
142
0
    }
143
144
    /**
145
     * Setter for DurabilityQosPolicy
146
     *
147
     * @param durability new value for the DurabilityQosPolicy
148
     */
149
    RTPS_DllAPI void durability(
150
            const DurabilityQosPolicy& durability)
151
0
    {
152
0
        durability_ = durability;
153
0
    }
154
155
    /**
156
     * Getter for DurabilityServiceQosPolicy
157
     *
158
     * @return DurabilityServiceQosPolicy reference
159
     */
160
    RTPS_DllAPI DurabilityServiceQosPolicy& durability_service()
161
0
    {
162
0
        return durability_service_;
163
0
    }
164
165
    /**
166
     * Getter for DurabilityServiceQosPolicy
167
     *
168
     * @return DurabilityServiceQosPolicy reference
169
     */
170
    RTPS_DllAPI const DurabilityServiceQosPolicy& durability_service() const
171
0
    {
172
0
        return durability_service_;
173
0
    }
174
175
    /**
176
     * Setter for DurabilityServiceQosPolicy
177
     *
178
     * @param durability_service new value for the DurabilityServiceQosPolicy
179
     */
180
    RTPS_DllAPI void durability_service(
181
            const DurabilityServiceQosPolicy& durability_service)
182
0
    {
183
0
        durability_service_ = durability_service;
184
0
    }
185
186
    /**
187
     * Getter for DeadlineQosPolicy
188
     *
189
     * @return DeadlineQosPolicy reference
190
     */
191
    RTPS_DllAPI DeadlineQosPolicy& deadline()
192
0
    {
193
0
        return deadline_;
194
0
    }
195
196
    /**
197
     * Getter for DeadlineQosPolicy
198
     *
199
     * @return DeadlineQosPolicy reference
200
     */
201
    RTPS_DllAPI const DeadlineQosPolicy& deadline() const
202
0
    {
203
0
        return deadline_;
204
0
    }
205
206
    /**
207
     * Setter for DeadlineQosPolicy
208
     *
209
     * @param deadline new value for the DeadlineQosPolicy
210
     */
211
    RTPS_DllAPI void deadline(
212
            const DeadlineQosPolicy& deadline)
213
0
    {
214
0
        deadline_ = deadline;
215
0
    }
216
217
    /**
218
     * Getter for LatencyBudgetQosPolicy
219
     *
220
     * @return LatencyBudgetQosPolicy reference
221
     */
222
    RTPS_DllAPI LatencyBudgetQosPolicy& latency_budget()
223
0
    {
224
0
        return latency_budget_;
225
0
    }
226
227
    /**
228
     * Getter for LatencyBudgetQosPolicy
229
     *
230
     * @return LatencyBudgetQosPolicy reference
231
     */
232
    RTPS_DllAPI const LatencyBudgetQosPolicy& latency_budget() const
233
0
    {
234
0
        return latency_budget_;
235
0
    }
236
237
    /**
238
     * Setter for LatencyBudgetQosPolicy
239
     *
240
     * @param latency_budget new value for the LatencyBudgetQosPolicy
241
     */
242
    RTPS_DllAPI void latency_budget(
243
            const LatencyBudgetQosPolicy& latency_budget)
244
0
    {
245
0
        latency_budget_ = latency_budget;
246
0
    }
247
248
    /**
249
     * Getter for LivelinessQosPolicy
250
     *
251
     * @return LivelinessQosPolicy reference
252
     */
253
    RTPS_DllAPI LivelinessQosPolicy& liveliness()
254
0
    {
255
0
        return liveliness_;
256
0
    }
257
258
    /**
259
     * Getter for LivelinessQosPolicy
260
     *
261
     * @return LivelinessQosPolicy reference
262
     */
263
    RTPS_DllAPI const LivelinessQosPolicy& liveliness() const
264
0
    {
265
0
        return liveliness_;
266
0
    }
267
268
    /**
269
     * Setter for LivelinessQosPolicy
270
     *
271
     * @param liveliness new value for the LivelinessQosPolicy
272
     */
273
    RTPS_DllAPI void liveliness(
274
            const LivelinessQosPolicy& liveliness)
275
0
    {
276
0
        liveliness_ = liveliness;
277
0
    }
278
279
    /**
280
     * Getter for ReliabilityQosPolicy
281
     *
282
     * @return ReliabilityQosPolicy reference
283
     */
284
    RTPS_DllAPI ReliabilityQosPolicy& reliability()
285
0
    {
286
0
        return reliability_;
287
0
    }
288
289
    /**
290
     * Getter for ReliabilityQosPolicy
291
     *
292
     * @return ReliabilityQosPolicy reference
293
     */
294
    RTPS_DllAPI const ReliabilityQosPolicy& reliability() const
295
0
    {
296
0
        return reliability_;
297
0
    }
298
299
    /**
300
     * Setter for ReliabilityQosPolicy
301
     *
302
     * @param reliability new value for the ReliabilityQosPolicy
303
     */
304
    RTPS_DllAPI void reliability(
305
            const ReliabilityQosPolicy& reliability)
306
0
    {
307
0
        reliability_ = reliability;
308
0
    }
309
310
    /**
311
     * Getter for DestinationOrderQosPolicy
312
     *
313
     * @return DestinationOrderQosPolicy reference
314
     */
315
    RTPS_DllAPI DestinationOrderQosPolicy& destination_order()
316
0
    {
317
0
        return destination_order_;
318
0
    }
319
320
    /**
321
     * Getter for DestinationOrderQosPolicy
322
     *
323
     * @return DestinationOrderQosPolicy reference
324
     */
325
    RTPS_DllAPI const DestinationOrderQosPolicy& destination_order() const
326
0
    {
327
0
        return destination_order_;
328
0
    }
329
330
    /**
331
     * Setter for DestinationOrderQosPolicy
332
     *
333
     * @param destination_order new value for the DestinationOrderQosPolicy
334
     */
335
    RTPS_DllAPI void destination_order(
336
            const DestinationOrderQosPolicy& destination_order)
337
0
    {
338
0
        destination_order_ = destination_order;
339
0
    }
340
341
    /**
342
     * Getter for HistoryQosPolicy
343
     *
344
     * @return HistoryQosPolicy reference
345
     */
346
    RTPS_DllAPI HistoryQosPolicy& history()
347
0
    {
348
0
        return history_;
349
0
    }
350
351
    /**
352
     * Getter for HistoryQosPolicy
353
     *
354
     * @return HistoryQosPolicy reference
355
     */
356
    RTPS_DllAPI const HistoryQosPolicy& history() const
357
0
    {
358
0
        return history_;
359
0
    }
360
361
    /**
362
     * Setter for HistoryQosPolicy
363
     *
364
     * @param history new value for the HistoryQosPolicy
365
     */
366
    RTPS_DllAPI void history(
367
            const HistoryQosPolicy& history)
368
0
    {
369
0
        history_ = history;
370
0
    }
371
372
    /**
373
     * Getter for ResourceLimitsQosPolicy
374
     *
375
     * @return ResourceLimitsQosPolicy reference
376
     */
377
    RTPS_DllAPI ResourceLimitsQosPolicy& resource_limits()
378
0
    {
379
0
        return resource_limits_;
380
0
    }
381
382
    /**
383
     * Getter for ResourceLimitsQosPolicy
384
     *
385
     * @return ResourceLimitsQosPolicy reference
386
     */
387
    RTPS_DllAPI const ResourceLimitsQosPolicy& resource_limits() const
388
0
    {
389
0
        return resource_limits_;
390
0
    }
391
392
    /**
393
     * Setter for ResourceLimitsQosPolicy
394
     *
395
     * @param resource_limits new value for the ResourceLimitsQosPolicy
396
     */
397
    RTPS_DllAPI void resource_limits(
398
            const ResourceLimitsQosPolicy& resource_limits)
399
0
    {
400
0
        resource_limits_ = resource_limits;
401
0
    }
402
403
    /**
404
     * Getter for TransportPriorityQosPolicy
405
     *
406
     * @return TransportPriorityQosPolicy reference
407
     */
408
    RTPS_DllAPI TransportPriorityQosPolicy& transport_priority()
409
0
    {
410
0
        return transport_priority_;
411
0
    }
412
413
    /**
414
     * Getter for TransportPriorityQosPolicy
415
     *
416
     * @return TransportPriorityQosPolicy reference
417
     */
418
    RTPS_DllAPI const TransportPriorityQosPolicy& transport_priority() const
419
0
    {
420
0
        return transport_priority_;
421
0
    }
422
423
    /**
424
     * Setter for TransportPriorityQosPolicy
425
     *
426
     * @param transport_priority new value for the TransportPriorityQosPolicy
427
     */
428
    RTPS_DllAPI void transport_priority(
429
            const TransportPriorityQosPolicy& transport_priority)
430
0
    {
431
0
        transport_priority_ = transport_priority;
432
0
    }
433
434
    /**
435
     * Getter for LifespanQosPolicy
436
     *
437
     * @return LifespanQosPolicy reference
438
     */
439
    RTPS_DllAPI LifespanQosPolicy& lifespan()
440
0
    {
441
0
        return lifespan_;
442
0
    }
443
444
    /**
445
     * Getter for LifespanQosPolicy
446
     *
447
     * @return LifespanQosPolicy reference
448
     */
449
    RTPS_DllAPI const LifespanQosPolicy& lifespan() const
450
0
    {
451
0
        return lifespan_;
452
0
    }
453
454
    /**
455
     * Setter for LifespanQosPolicy
456
     *
457
     * @param lifespan new value for the LifespanQosPolicy
458
     */
459
    RTPS_DllAPI void lifespan(
460
            const LifespanQosPolicy& lifespan)
461
0
    {
462
0
        lifespan_ = lifespan;
463
0
    }
464
465
    /**
466
     * Getter for UserDataQosPolicy
467
     *
468
     * @return UserDataQosPolicy reference
469
     */
470
    RTPS_DllAPI UserDataQosPolicy& user_data()
471
0
    {
472
0
        return user_data_;
473
0
    }
474
475
    /**
476
     * Getter for UserDataQosPolicy
477
     *
478
     * @return UserDataQosPolicy reference
479
     */
480
    RTPS_DllAPI const UserDataQosPolicy& user_data() const
481
0
    {
482
0
        return user_data_;
483
0
    }
484
485
    /**
486
     * Setter for UserDataQosPolicy
487
     *
488
     * @param user_data new value for the UserDataQosPolicy
489
     */
490
    RTPS_DllAPI void user_data(
491
            const UserDataQosPolicy& user_data)
492
0
    {
493
0
        user_data_ = user_data;
494
0
    }
495
496
    /**
497
     * Getter for OwnershipQosPolicy
498
     *
499
     * @return OwnershipQosPolicy reference
500
     */
501
    RTPS_DllAPI OwnershipQosPolicy& ownership()
502
0
    {
503
0
        return ownership_;
504
0
    }
505
506
    /**
507
     * Getter for OwnershipQosPolicy
508
     *
509
     * @return OwnershipQosPolicy reference
510
     */
511
    RTPS_DllAPI const OwnershipQosPolicy& ownership() const
512
0
    {
513
0
        return ownership_;
514
0
    }
515
516
    /**
517
     * Setter for OwnershipQosPolicy
518
     *
519
     * @param ownership new value for the OwnershipQosPolicy
520
     */
521
    RTPS_DllAPI void ownership(
522
            const OwnershipQosPolicy& ownership)
523
0
    {
524
0
        ownership_ = ownership;
525
0
    }
526
527
    /**
528
     * Getter for OwnershipStrengthQosPolicy
529
     *
530
     * @return OwnershipStrengthQosPolicy reference
531
     */
532
    RTPS_DllAPI OwnershipStrengthQosPolicy& ownership_strength()
533
0
    {
534
0
        return ownership_strength_;
535
0
    }
536
537
    /**
538
     * Getter for OwnershipStrengthQosPolicy
539
     *
540
     * @return OwnershipStrengthQosPolicy reference
541
     */
542
    RTPS_DllAPI const OwnershipStrengthQosPolicy& ownership_strength() const
543
0
    {
544
0
        return ownership_strength_;
545
0
    }
546
547
    /**
548
     * Setter for OwnershipStrengthQosPolicy
549
     *
550
     * @param ownership_strength new value for the OwnershipStrengthQosPolicy
551
     */
552
    RTPS_DllAPI void ownership_strength(
553
            const OwnershipStrengthQosPolicy& ownership_strength)
554
0
    {
555
0
        ownership_strength_ = ownership_strength;
556
0
    }
557
558
    /**
559
     * Getter for WriterDataLifecycleQosPolicy
560
     *
561
     * @return WriterDataLifecycleQosPolicy reference
562
     */
563
    RTPS_DllAPI WriterDataLifecycleQosPolicy& writer_data_lifecycle()
564
0
    {
565
0
        return writer_data_lifecycle_;
566
0
    }
567
568
    /**
569
     * Getter for WriterDataLifecycleQosPolicy
570
     *
571
     * @return WriterDataLifecycleQosPolicy reference
572
     */
573
    RTPS_DllAPI const WriterDataLifecycleQosPolicy& writer_data_lifecycle() const
574
0
    {
575
0
        return writer_data_lifecycle_;
576
0
    }
577
578
    /**
579
     * Setter for WriterDataLifecycleQosPolicy
580
     *
581
     * @param writer_data_lifecycle new value for the WriterDataLifecycleQosPolicy
582
     */
583
    RTPS_DllAPI void writer_data_lifecycle(
584
            const WriterDataLifecycleQosPolicy& writer_data_lifecycle)
585
0
    {
586
0
        writer_data_lifecycle_ = writer_data_lifecycle;
587
0
    }
588
589
    /**
590
     * Getter for PublishModeQosPolicy
591
     *
592
     * @return PublishModeQosPolicy reference
593
     */
594
    RTPS_DllAPI PublishModeQosPolicy& publish_mode()
595
0
    {
596
0
        return publish_mode_;
597
0
    }
598
599
    /**
600
     * Getter for PublishModeQosPolicy
601
     *
602
     * @return PublishModeQosPolicy reference
603
     */
604
    RTPS_DllAPI const PublishModeQosPolicy& publish_mode() const
605
0
    {
606
0
        return publish_mode_;
607
0
    }
608
609
    /**
610
     * Setter for PublishModeQosPolicy
611
     *
612
     * @param publish_mode new value for the PublishModeQosPolicy
613
     */
614
    RTPS_DllAPI void publish_mode(
615
            const PublishModeQosPolicy& publish_mode)
616
0
    {
617
0
        publish_mode_ = publish_mode;
618
0
    }
619
620
    /**
621
     * Getter for DataRepresentationQosPolicy
622
     *
623
     * @return DataRepresentationQosPolicy reference
624
     */
625
    RTPS_DllAPI DataRepresentationQosPolicy& representation()
626
0
    {
627
0
        return representation_;
628
0
    }
629
630
    /**
631
     * Getter for DataRepresentationQosPolicy
632
     *
633
     * @return DataRepresentationQosPolicy reference
634
     */
635
    RTPS_DllAPI const DataRepresentationQosPolicy& representation() const
636
0
    {
637
0
        return representation_;
638
0
    }
639
640
    /**
641
     * Setter for DataRepresentationQosPolicy
642
     *
643
     * @param representation new value for the DataRepresentationQosPolicy
644
     */
645
    RTPS_DllAPI void representation(
646
            const DataRepresentationQosPolicy& representation)
647
0
    {
648
0
        representation_ = representation;
649
0
    }
650
651
    /**
652
     * Getter for PropertyPolicyQos
653
     *
654
     * @return PropertyPolicyQos reference
655
     */
656
    RTPS_DllAPI PropertyPolicyQos& properties()
657
0
    {
658
0
        return properties_;
659
0
    }
660
661
    /**
662
     * Getter for PropertyPolicyQos
663
     *
664
     * @return PropertyPolicyQos reference
665
     */
666
    RTPS_DllAPI const PropertyPolicyQos& properties() const
667
0
    {
668
0
        return properties_;
669
0
    }
670
671
    /**
672
     * Setter for PropertyPolicyQos
673
     *
674
     * @param properties new value for the PropertyPolicyQos
675
     */
676
    RTPS_DllAPI void properties(
677
            const PropertyPolicyQos& properties)
678
0
    {
679
0
        properties_ = properties;
680
0
    }
681
682
    /**
683
     * Getter for RTPSReliableWriterQos
684
     *
685
     * @return RTPSReliableWriterQos reference
686
     */
687
    RTPS_DllAPI RTPSReliableWriterQos& reliable_writer_qos()
688
0
    {
689
0
        return reliable_writer_qos_;
690
0
    }
691
692
    /**
693
     * Getter for RTPSReliableWriterQos
694
     *
695
     * @return RTPSReliableWriterQos reference
696
     */
697
    RTPS_DllAPI const RTPSReliableWriterQos& reliable_writer_qos() const
698
0
    {
699
0
        return reliable_writer_qos_;
700
0
    }
701
702
    /**
703
     * Setter for RTPSReliableWriterQos
704
     *
705
     * @param reliable_writer_qos new value for the RTPSReliableWriterQos
706
     */
707
    RTPS_DllAPI void reliable_writer_qos(
708
            const RTPSReliableWriterQos& reliable_writer_qos)
709
0
    {
710
0
        reliable_writer_qos_ = reliable_writer_qos;
711
0
    }
712
713
    /**
714
     * Getter for RTPSEndpointQos
715
     *
716
     * @return RTPSEndpointQos reference
717
     */
718
    RTPS_DllAPI RTPSEndpointQos& endpoint()
719
0
    {
720
0
        return endpoint_;
721
0
    }
722
723
    /**
724
     * Getter for RTPSEndpointQos
725
     * @return RTPSEndpointQos reference
726
     */
727
    RTPS_DllAPI const RTPSEndpointQos& endpoint() const
728
0
    {
729
0
        return endpoint_;
730
0
    }
731
732
    /**
733
     * Setter for RTPSEndpointQos
734
     *
735
     * @param endpoint new value for the RTPSEndpointQos
736
     */
737
    RTPS_DllAPI void endpoint(
738
            const RTPSEndpointQos& endpoint)
739
0
    {
740
0
        endpoint_ = endpoint;
741
0
    }
742
743
    /**
744
     * Getter for WriterResourceLimitsQos
745
     *
746
     * @return WriterResourceLimitsQos reference
747
     */
748
    RTPS_DllAPI WriterResourceLimitsQos& writer_resource_limits()
749
0
    {
750
0
        return writer_resource_limits_;
751
0
    }
752
753
    /**
754
     * Getter for WriterResourceLimitsQos
755
     *
756
     * @return WriterResourceLimitsQos reference
757
     */
758
    RTPS_DllAPI const WriterResourceLimitsQos& writer_resource_limits() const
759
0
    {
760
0
        return writer_resource_limits_;
761
0
    }
762
763
    /**
764
     * Setter for WriterResourceLimitsQos
765
     *
766
     * @param writer_resource_limits new value for the WriterResourceLimitsQos
767
     */
768
    RTPS_DllAPI void writer_resource_limits(
769
            const WriterResourceLimitsQos& writer_resource_limits)
770
0
    {
771
0
        writer_resource_limits_ = writer_resource_limits;
772
0
    }
773
774
    /**
775
     * Getter for ThroughputControllerDescriptor
776
     *
777
     * @return ThroughputControllerDescriptor reference
778
     */
779
    RTPS_DllAPI fastrtps::rtps::ThroughputControllerDescriptor& throughput_controller()
780
0
    {
781
0
        return throughput_controller_;
782
0
    }
783
784
    /**
785
     * Getter for ThroughputControllerDescriptor
786
     *
787
     * @return ThroughputControllerDescriptor reference
788
     */
789
    RTPS_DllAPI const fastrtps::rtps::ThroughputControllerDescriptor& throughput_controller() const
790
0
    {
791
0
        return throughput_controller_;
792
0
    }
793
794
    /**
795
     * Setter for ThroughputControllerDescriptor
796
     *
797
     * @param throughput_controller new value for the ThroughputControllerDescriptor
798
     */
799
    RTPS_DllAPI void throughput_controller(
800
            const fastrtps::rtps::ThroughputControllerDescriptor& throughput_controller)
801
0
    {
802
0
        throughput_controller_ = throughput_controller;
803
0
    }
804
805
    /**
806
     * Getter for DataSharingQosPolicy
807
     *
808
     * @return DataSharingQosPolicy reference
809
     */
810
    RTPS_DllAPI DataSharingQosPolicy& data_sharing()
811
0
    {
812
0
        return data_sharing_;
813
0
    }
814
815
    /**
816
     * Getter for DataSharingQosPolicy
817
     *
818
     * @return DataSharingQosPolicy reference
819
     */
820
    RTPS_DllAPI const DataSharingQosPolicy& data_sharing() const
821
0
    {
822
0
        return data_sharing_;
823
0
    }
824
825
    /**
826
     * Setter for DataSharingQosPolicy
827
     *
828
     * @param data_sharing new value for the DataSharingQosPolicy
829
     */
830
    RTPS_DllAPI void data_sharing(
831
            const DataSharingQosPolicy& data_sharing)
832
0
    {
833
0
        data_sharing_ = data_sharing;
834
0
    }
835
836
private:
837
838
    //!Durability Qos, implemented in the library.
839
    DurabilityQosPolicy durability_;
840
841
    //!Durability Service Qos, NOT implemented in the library.
842
    DurabilityServiceQosPolicy durability_service_;
843
844
    //!Deadline Qos, implemented in the library.
845
    DeadlineQosPolicy deadline_;
846
847
    //!Latency Budget Qos, NOT implemented in the library.
848
    LatencyBudgetQosPolicy latency_budget_;
849
850
    //!Liveliness Qos, implemented in the library.
851
    LivelinessQosPolicy liveliness_;
852
853
    //!Reliability Qos, implemented in the library.
854
    ReliabilityQosPolicy reliability_;
855
856
    //!Destination Order Qos, NOT implemented in the library.
857
    DestinationOrderQosPolicy destination_order_;
858
859
    //!History Qos, implemented in the library.
860
    HistoryQosPolicy history_;
861
862
    //!Resource Limits Qos, implemented in the library.
863
    ResourceLimitsQosPolicy resource_limits_;
864
865
    //!Transport Priority Qos, NOT implemented in the library.
866
    TransportPriorityQosPolicy transport_priority_;
867
868
    //!Lifespan Qos, implemented in the library.
869
    LifespanQosPolicy lifespan_;
870
871
    //!User Data Qos, implemented in the library.
872
    UserDataQosPolicy user_data_;
873
874
    //!Ownership Qos, implemented in the library.
875
    OwnershipQosPolicy ownership_;
876
877
    //!Ownership Strength Qos, implemented in the library.
878
    OwnershipStrengthQosPolicy ownership_strength_;
879
880
    //!Writer Data Lifecycle Qos, NOT implemented in the library.
881
    WriterDataLifecycleQosPolicy writer_data_lifecycle_;
882
883
    //!Publication Mode Qos, implemented in the library.
884
    PublishModeQosPolicy publish_mode_;
885
886
    //!Data Representation Qos, implemented in the library.
887
    DataRepresentationQosPolicy representation_;
888
889
    //!Property policies
890
    PropertyPolicyQos properties_;
891
892
    //!RTPS Reliable Writer Qos
893
    RTPSReliableWriterQos reliable_writer_qos_;
894
895
    //!RTPS Endpoint Qos
896
    RTPSEndpointQos endpoint_;
897
898
    //!Writer Resource Limits Qos
899
    WriterResourceLimitsQos writer_resource_limits_;
900
901
    //!Throughput controller
902
    fastrtps::rtps::ThroughputControllerDescriptor throughput_controller_;
903
904
    //!DataSharing configuration
905
    DataSharingQosPolicy data_sharing_;
906
};
907
908
RTPS_DllAPI extern const DataWriterQos DATAWRITER_QOS_DEFAULT;
909
910
} // namespace dds
911
} // namespace fastdds
912
} // namespace eprosima
913
914
#endif // _FASTDDS_DATAWRITERQOS_HPP