Coverage Report

Created: 2025-06-13 06:46

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