Skip to content

Commit e72b1c3

Browse files
Improvements on QosPolicies.h [7892] (#1056)
* Refs #7877. Uncrustify. * Refs #7877. Use default on dtors. * Refs #7877. Assign length when assigning from collection. * Refs #7877. Add copy assignment operation on TemplateDataQosPolicy. * Refs #7877. Use collection_type alias. * Refs #7892. Addressed review comments.
1 parent 61e0450 commit e72b1c3

File tree

1 file changed

+57
-91
lines changed

1 file changed

+57
-91
lines changed

include/fastrtps/qos/QosPolicies.h

Lines changed: 57 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ class QosPolicy
5454
{
5555
}
5656

57-
virtual ~QosPolicy()
58-
{
59-
}
57+
virtual ~QosPolicy() = default;
6058

6159
bool operator ==(
6260
const QosPolicy& b) const
@@ -128,9 +126,7 @@ class DurabilityQosPolicy : public Parameter_t, public QosPolicy
128126
{
129127
}
130128

131-
virtual RTPS_DllAPI ~DurabilityQosPolicy()
132-
{
133-
}
129+
virtual RTPS_DllAPI ~DurabilityQosPolicy() = default;
134130

135131
/**
136132
* Translates kind to rtps layer equivalent
@@ -217,9 +213,7 @@ class DeadlineQosPolicy : public Parameter_t, public QosPolicy
217213
{
218214
}
219215

220-
virtual RTPS_DllAPI ~DeadlineQosPolicy()
221-
{
222-
}
216+
virtual RTPS_DllAPI ~DeadlineQosPolicy() = default;
223217

224218
bool operator ==(
225219
const DeadlineQosPolicy& b) const
@@ -274,9 +268,7 @@ class LatencyBudgetQosPolicy : public Parameter_t, public QosPolicy
274268
{
275269
}
276270

277-
virtual RTPS_DllAPI ~LatencyBudgetQosPolicy()
278-
{
279-
}
271+
virtual RTPS_DllAPI ~LatencyBudgetQosPolicy() = default;
280272

281273
bool operator ==(
282274
const LatencyBudgetQosPolicy& b) const
@@ -348,9 +340,7 @@ class LivelinessQosPolicy : public Parameter_t, public QosPolicy
348340
{
349341
}
350342

351-
virtual RTPS_DllAPI ~LivelinessQosPolicy()
352-
{
353-
}
343+
virtual RTPS_DllAPI ~LivelinessQosPolicy() = default;
354344

355345
bool operator ==(
356346
const LivelinessQosPolicy& b) const
@@ -419,9 +409,7 @@ class ReliabilityQosPolicy : public Parameter_t, public QosPolicy
419409
{
420410
}
421411

422-
virtual RTPS_DllAPI ~ReliabilityQosPolicy()
423-
{
424-
}
412+
virtual RTPS_DllAPI ~ReliabilityQosPolicy() = default;
425413

426414
bool operator ==(
427415
const ReliabilityQosPolicy& b) const
@@ -502,9 +490,7 @@ class OwnershipQosPolicy : public Parameter_t, public QosPolicy
502490
{
503491
}
504492

505-
virtual RTPS_DllAPI ~OwnershipQosPolicy()
506-
{
507-
}
493+
virtual RTPS_DllAPI ~OwnershipQosPolicy() = default;
508494

509495
bool operator ==(
510496
const OwnershipQosPolicy& b) const
@@ -570,9 +556,7 @@ class DestinationOrderQosPolicy : public Parameter_t, public QosPolicy
570556
{
571557
}
572558

573-
virtual RTPS_DllAPI ~DestinationOrderQosPolicy()
574-
{
575-
}
559+
virtual RTPS_DllAPI ~DestinationOrderQosPolicy() = default;
576560

577561
bool operator ==(
578562
const DestinationOrderQosPolicy& b) const
@@ -674,9 +658,7 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
674658
length = (size() + 7) & ~3;
675659
}
676660

677-
virtual RTPS_DllAPI ~GenericDataQosPolicy()
678-
{
679-
}
661+
virtual RTPS_DllAPI ~GenericDataQosPolicy() = default;
680662

681663
/**
682664
* Copies data from underlying collection type.
@@ -697,6 +679,7 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
697679
//If the object is size limited, already has max_size() allocated
698680
//assign() will always stop copying when reaching max_size()
699681
assign(b.begin(), b.end());
682+
length = (size() + 7) & ~3;
700683
hasChanged = true;
701684
}
702685
return *this;
@@ -714,8 +697,8 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
714697
GenericDataQosPolicy& operator =(
715698
const GenericDataQosPolicy& b)
716699
{
717-
QosPolicy::operator=(b);
718-
Parameter_t::operator=(b);
700+
QosPolicy::operator =(b);
701+
Parameter_t::operator =(b);
719702
configuration_ = b.configuration_;
720703
collection_.reserve(b.collection_.capacity());
721704
collection_.assign(b.collection_.begin(), b.collection_.end());
@@ -757,7 +740,7 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
757740
/**
758741
* @return const reference to the internal raw data.
759742
*/
760-
inline const std::vector<rtps::octet>& dataVec() const
743+
inline const collection_type& dataVec() const
761744
{
762745
return collection_;
763746
}
@@ -807,7 +790,7 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
807790
* Returns raw data vector.
808791
* @return raw data as vector of octets.
809792
* */
810-
RTPS_DllAPI inline std::vector<rtps::octet> getDataVec() const
793+
RTPS_DllAPI inline const collection_type& getDataVec() const
811794
{
812795
return collection_;
813796
}
@@ -817,16 +800,21 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
817800
* @param vec raw data to set.
818801
* */
819802
RTPS_DllAPI inline void setDataVec(
820-
const std::vector<rtps::octet>& vec)
803+
const collection_type& vec)
821804
{
822-
assign(vec.begin(), vec.end());
805+
if (collection_ != vec)
806+
{
807+
assign(vec.begin(), vec.end());
808+
length = (size() + 7) & ~3;
809+
hasChanged = true;
810+
}
823811
}
824812

825813
/**
826814
* Returns raw data vector.
827815
* @return raw data as vector of octets.
828816
* */
829-
RTPS_DllAPI inline std::vector<rtps::octet> getValue() const
817+
RTPS_DllAPI inline const collection_type& getValue() const
830818
{
831819
return collection_;
832820
}
@@ -836,10 +824,11 @@ class GenericDataQosPolicy : public Parameter_t, public QosPolicy, public Resour
836824
* @param vec raw data to set.
837825
* */
838826
RTPS_DllAPI inline void setValue(
839-
const std::vector<rtps::octet>& vec)
827+
const collection_type& vec)
840828
{
841-
assign(vec.begin(), vec.end());
829+
setDataVec(vec);
842830
}
831+
843832
};
844833

845834
/**
@@ -870,10 +859,7 @@ class TemplateDataQosPolicy : public GenericDataQosPolicy
870859
* @param data data to copy in the newly created object
871860
*/
872861
RTPS_DllAPI TemplateDataQosPolicy(
873-
const TemplateDataQosPolicy& data)
874-
: GenericDataQosPolicy(data)
875-
{
876-
}
862+
const TemplateDataQosPolicy& data) = default;
877863

878864
/**
879865
* Construct from underlying collection type.
@@ -889,9 +875,20 @@ class TemplateDataQosPolicy : public GenericDataQosPolicy
889875
{
890876
}
891877

892-
virtual RTPS_DllAPI ~TemplateDataQosPolicy()
893-
{
894-
}
878+
virtual RTPS_DllAPI ~TemplateDataQosPolicy() = default;
879+
880+
/**
881+
* Copies another TemplateDataQosPolicy.
882+
*
883+
* The resulting TemplateDataQosPolicy will have the same size limit
884+
* as the input parameter, so all data in the input will be copied.
885+
*
886+
* @param b object to be copied
887+
* @return reference to the current object.
888+
*/
889+
TemplateDataQosPolicy& operator =(
890+
const TemplateDataQosPolicy& b) = default;
891+
895892
};
896893

897894
using UserDataQosPolicy = TemplateDataQosPolicy<PID_USER_DATA>;
@@ -914,9 +911,7 @@ class TimeBasedFilterQosPolicy : public Parameter_t, public QosPolicy
914911
{
915912
}
916913

917-
virtual RTPS_DllAPI ~TimeBasedFilterQosPolicy()
918-
{
919-
}
914+
virtual RTPS_DllAPI ~TimeBasedFilterQosPolicy() = default;
920915

921916
bool operator ==(
922917
const TimeBasedFilterQosPolicy& b) const
@@ -987,9 +982,7 @@ class PresentationQosPolicy : public Parameter_t, public QosPolicy
987982
{
988983
}
989984

990-
virtual RTPS_DllAPI ~PresentationQosPolicy()
991-
{
992-
}
985+
virtual RTPS_DllAPI ~PresentationQosPolicy() = default;
993986

994987
bool operator ==(
995988
const PresentationQosPolicy& b) const
@@ -1196,9 +1189,7 @@ class PartitionQosPolicy : public Parameter_t, public QosPolicy
11961189
partitions_.copy(&b.partitions_, b.max_size_ != 0);
11971190
}
11981191

1199-
virtual RTPS_DllAPI ~PartitionQosPolicy()
1200-
{
1201-
}
1192+
virtual RTPS_DllAPI ~PartitionQosPolicy() = default;
12021193

12031194
bool operator ==(
12041195
const PartitionQosPolicy& b) const
@@ -1213,8 +1204,8 @@ class PartitionQosPolicy : public Parameter_t, public QosPolicy
12131204
PartitionQosPolicy& operator =(
12141205
const PartitionQosPolicy& b)
12151206
{
1216-
QosPolicy::operator=(b);
1217-
Parameter_t::operator=(b);
1207+
QosPolicy::operator =(b);
1208+
Parameter_t::operator =(b);
12181209
max_size_ = b.max_size_;
12191210
partitions_.reserve(max_size_ != 0 ?
12201211
b.partitions_.max_size :
@@ -1388,9 +1379,7 @@ class HistoryQosPolicy : public Parameter_t, public QosPolicy
13881379
{
13891380
}
13901381

1391-
virtual RTPS_DllAPI ~HistoryQosPolicy()
1392-
{
1393-
}
1382+
virtual RTPS_DllAPI ~HistoryQosPolicy() = default;
13941383

13951384
bool operator ==(
13961385
const HistoryQosPolicy& b) const
@@ -1457,10 +1446,7 @@ class ResourceLimitsQosPolicy : public Parameter_t, public QosPolicy
14571446
{
14581447
}
14591448

1460-
virtual RTPS_DllAPI ~ResourceLimitsQosPolicy()
1461-
{
1462-
}
1463-
1449+
virtual RTPS_DllAPI ~ResourceLimitsQosPolicy() = default;
14641450

14651451
inline void clear() override
14661452
{
@@ -1514,9 +1500,7 @@ class DurabilityServiceQosPolicy : public Parameter_t, public QosPolicy
15141500
{
15151501
}
15161502

1517-
virtual RTPS_DllAPI ~DurabilityServiceQosPolicy()
1518-
{
1519-
}
1503+
virtual RTPS_DllAPI ~DurabilityServiceQosPolicy() = default;
15201504

15211505
bool operator ==(
15221506
const DurabilityServiceQosPolicy& b) const
@@ -1580,9 +1564,7 @@ class LifespanQosPolicy : public Parameter_t, public QosPolicy
15801564
{
15811565
}
15821566

1583-
virtual RTPS_DllAPI ~LifespanQosPolicy()
1584-
{
1585-
}
1567+
virtual RTPS_DllAPI ~LifespanQosPolicy() = default;
15861568

15871569
bool operator ==(
15881570
const LifespanQosPolicy& b) const
@@ -1636,9 +1618,7 @@ class OwnershipStrengthQosPolicy : public Parameter_t, public QosPolicy
16361618
{
16371619
}
16381620

1639-
virtual RTPS_DllAPI ~OwnershipStrengthQosPolicy()
1640-
{
1641-
}
1621+
virtual RTPS_DllAPI ~OwnershipStrengthQosPolicy() = default;
16421622

16431623
bool operator ==(
16441624
const OwnershipStrengthQosPolicy& b) const
@@ -1696,9 +1676,7 @@ class TransportPriorityQosPolicy : public Parameter_t, public QosPolicy
16961676
{
16971677
}
16981678

1699-
virtual RTPS_DllAPI ~TransportPriorityQosPolicy()
1700-
{
1701-
}
1679+
virtual RTPS_DllAPI ~TransportPriorityQosPolicy() = default;
17021680

17031681
inline void clear() override
17041682
{
@@ -1748,9 +1726,7 @@ class PublishModeQosPolicy : public QosPolicy
17481726
{
17491727
}
17501728

1751-
virtual RTPS_DllAPI ~PublishModeQosPolicy()
1752-
{
1753-
}
1729+
virtual RTPS_DllAPI ~PublishModeQosPolicy() = default;
17541730

17551731
inline void clear() override
17561732
{
@@ -1782,9 +1758,7 @@ class DataRepresentationQosPolicy : public Parameter_t, public QosPolicy
17821758
{
17831759
}
17841760

1785-
virtual RTPS_DllAPI ~DataRepresentationQosPolicy()
1786-
{
1787-
}
1761+
virtual RTPS_DllAPI ~DataRepresentationQosPolicy() = default;
17881762

17891763
inline void clear() override
17901764
{
@@ -1845,9 +1819,7 @@ class TypeConsistencyEnforcementQosPolicy : public Parameter_t, public QosPolicy
18451819
m_force_type_validation = false;
18461820
}
18471821

1848-
virtual RTPS_DllAPI ~TypeConsistencyEnforcementQosPolicy()
1849-
{
1850-
}
1822+
virtual RTPS_DllAPI ~TypeConsistencyEnforcementQosPolicy() = default;
18511823

18521824
inline void clear() override
18531825
{
@@ -1890,9 +1862,7 @@ class DisablePositiveACKsQosPolicy : public Parameter_t, public QosPolicy
18901862
{
18911863
}
18921864

1893-
virtual RTPS_DllAPI ~DisablePositiveACKsQosPolicy()
1894-
{
1895-
}
1865+
virtual RTPS_DllAPI ~DisablePositiveACKsQosPolicy() = default;
18961866

18971867
bool operator ==(
18981868
const DisablePositiveACKsQosPolicy& b) const
@@ -1990,9 +1960,7 @@ class TypeIdV1 : public Parameter_t, public QosPolicy
19901960
return *this;
19911961
}
19921962

1993-
virtual RTPS_DllAPI ~TypeIdV1()
1994-
{
1995-
}
1963+
virtual RTPS_DllAPI ~TypeIdV1() = default;
19961964

19971965
inline void clear() override
19981966
{
@@ -2077,9 +2045,7 @@ class TypeObjectV1 : public Parameter_t, public QosPolicy
20772045
return *this;
20782046
}
20792047

2080-
virtual RTPS_DllAPI ~TypeObjectV1()
2081-
{
2082-
}
2048+
virtual RTPS_DllAPI ~TypeObjectV1() = default;
20832049

20842050
inline void clear() override
20852051
{

0 commit comments

Comments
 (0)