Skip to content

Commit bdbfded

Browse files
authored
Enumerations as signed integer (#4969)
1 parent 1409dc2 commit bdbfded

8 files changed

Lines changed: 73 additions & 56 deletions

File tree

examples/cpp/dds/RequestReplyExample/Calculator.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
* @brief This class represents the enumeration OperationType defined by the user in the IDL file.
5454
* @ingroup Calculator
5555
*/
56-
enum class OperationType : uint32_t
56+
enum class OperationType : int32_t
5757
{
5858
ADDITION,
5959
SUBTRACTION,

include/fastdds/dds/xtypes/dynamic_types/detail/dynamic_language_binding.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ typedef std::map<ObjectName, ObjectName> Parameters;
103103
* @brief This class represents the enumeration ExtensibilityKind defined by the user in the IDL file.
104104
* @ingroup dynamic_language_binding
105105
*/
106-
enum class ExtensibilityKind : uint32_t
106+
enum class ExtensibilityKind : int32_t
107107
{
108108
FINAL,
109109
APPENDABLE,
@@ -113,7 +113,7 @@ enum class ExtensibilityKind : uint32_t
113113
* @brief This class represents the enumeration TryConstructKind defined by the user in the IDL file.
114114
* @ingroup dynamic_language_binding
115115
*/
116-
enum class TryConstructKind : uint32_t
116+
enum class TryConstructKind : int32_t
117117
{
118118
USE_DEFAULT,
119119
DISCARD,

src/cpp/fastdds/builtin/type_lookup_service/detail/rpc_types.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ typedef uint8_t UnusedMember;
763763
* @brief This class represents the enumeration RemoteExceptionCode_t defined by the user in the IDL file.
764764
* @ingroup rpc_types
765765
*/
766-
enum class RemoteExceptionCode_t : uint32_t
766+
enum class RemoteExceptionCode_t : int32_t
767767
{
768768
REMOTE_EX_OK,
769769
REMOTE_EX_UNSUPPORTED,

src/cpp/fastdds/xtypes/dynamic_types/MemberDescriptorImpl.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,12 @@ bool MemberDescriptorImpl::is_consistent() noexcept
229229
switch (kind)
230230
{
231231
case TK_INT8:
232-
case TK_UINT8:
233232
case TK_INT16:
234-
case TK_UINT16:
235233
case TK_INT32:
236-
case TK_UINT32:
237234
break;
235+
case TK_UINT8:
236+
case TK_UINT16:
237+
case TK_UINT32:
238238
case TK_INT64:
239239
case TK_UINT64:
240240
case TK_BOOLEAN:

src/cpp/statistics/types/monitorservice_types.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ namespace statistics {
6666
* @brief This class represents the enumeration ConnectionMode defined by the user in the IDL file.
6767
* @ingroup monitorservice_types
6868
*/
69-
enum class ConnectionMode : uint32_t
69+
enum class ConnectionMode : int32_t
7070
{
7171
DATA_SHARING,
7272
INTRAPROCESS,

test/blackbox/types/statistics/monitorservice_types.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ namespace statistics {
6666
* @brief This class represents the enumeration ConnectionMode defined by the user in the IDL file.
6767
* @ingroup monitorservice_types
6868
*/
69-
enum class ConnectionMode : uint32_t
69+
enum class ConnectionMode : int32_t
7070
{
7171
DATA_SHARING,
7272
INTRAPROCESS,

test/feature/dynamic_types/DynamicTypesTests.cpp

Lines changed: 62 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3818,7 +3818,7 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
38183818
{
38193819
eprosima::fastdds::testing::ScopeLogs _("disable");
38203820
// Test with base_type being not nil.
3821-
type_descriptor->base_type(factory->get_primitive_type(TK_UINT32));
3821+
type_descriptor->base_type(factory->get_primitive_type(TK_INT32));
38223822
DynamicTypeBuilder::_ref_type builder {factory->create_type(type_descriptor)};
38233823
EXPECT_FALSE(builder);
38243824
type_descriptor->base_type(nullptr);
@@ -3828,17 +3828,17 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
38283828
EXPECT_FALSE(builder);
38293829
type_descriptor->bound({});
38303830
// Test with discriminator_type set
3831-
type_descriptor->discriminator_type(factory->get_primitive_type(TK_UINT32));
3831+
type_descriptor->discriminator_type(factory->get_primitive_type(TK_INT32));
38323832
builder = factory->create_type(type_descriptor);
38333833
EXPECT_FALSE(builder);
38343834
type_descriptor->discriminator_type(nullptr);
38353835
// Test with element_type set
3836-
type_descriptor->element_type(factory->get_primitive_type(TK_UINT32));
3836+
type_descriptor->element_type(factory->get_primitive_type(TK_INT32));
38373837
builder = factory->create_type(type_descriptor);
38383838
EXPECT_FALSE(builder);
38393839
type_descriptor->element_type(nullptr);
38403840
// Test with key_element_type set
3841-
type_descriptor->key_element_type(factory->get_primitive_type(TK_UINT32));
3841+
type_descriptor->key_element_type(factory->get_primitive_type(TK_INT32));
38423842
builder = factory->create_type(type_descriptor);
38433843
EXPECT_FALSE(builder);
38443844
type_descriptor->key_element_type(nullptr);
@@ -3853,31 +3853,38 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
38533853

38543854
// Add three members to the enum.
38553855
MemberDescriptor::_ref_type member_descriptor {traits<MemberDescriptor>::make_shared()};
3856-
member_descriptor->type(factory->get_primitive_type(TK_UINT32));
3856+
member_descriptor->type(factory->get_primitive_type(TK_INT32));
38573857
{
38583858
// Negative case: descriptor without name.
38593859
eprosima::fastdds::testing::ScopeLogs _("disable");
38603860
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_BAD_PARAMETER);
38613861
}
38623862
member_descriptor->name("DEFAULT");
3863+
member_descriptor->type(factory->get_primitive_type(TK_UINT32));
3864+
{
3865+
// Negative case: descriptor type is unsigned integer
3866+
eprosima::fastdds::testing::ScopeLogs _("disable");
3867+
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_BAD_PARAMETER);
3868+
}
3869+
member_descriptor->type(factory->get_primitive_type(TK_INT32));
38633870
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_OK);
38643871
member_descriptor = traits<MemberDescriptor>::make_shared();
3865-
member_descriptor->type(factory->get_primitive_type(TK_UINT32));
3872+
member_descriptor->type(factory->get_primitive_type(TK_INT32));
38663873
member_descriptor->name("FIRST");
38673874
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_OK);
38683875
member_descriptor = traits<MemberDescriptor>::make_shared();
3869-
member_descriptor->type(factory->get_primitive_type(TK_UINT32));
3876+
member_descriptor->type(factory->get_primitive_type(TK_INT32));
38703877
member_descriptor->name("SECOND");
38713878
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_OK);
38723879

38733880
{
38743881
eprosima::fastdds::testing::ScopeLogs _("disable");
38753882
member_descriptor = traits<MemberDescriptor>::make_shared();
38763883
// Try to add a descriptor with diferent kind.
3877-
member_descriptor->type(factory->get_primitive_type(TK_INT32));
3884+
member_descriptor->type(factory->get_primitive_type(TK_INT16));
38783885
member_descriptor->name("THIRD");
38793886
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_BAD_PARAMETER);
3880-
member_descriptor->type(factory->get_primitive_type(TK_UINT32));
3887+
member_descriptor->type(factory->get_primitive_type(TK_INT32));
38813888
// Try to add a descriptor with a MemberId.
38823889
member_descriptor->id(100);
38833890
EXPECT_EQ(builder->add_member(member_descriptor), RETCODE_BAD_PARAMETER);
@@ -3944,44 +3951,56 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
39443951
EXPECT_EQ(MEMBER_ID_INVALID, data->get_member_id_at_index(0));
39453952

39463953
// Test getters and setters.
3947-
const uint32_t test1 {2};
3948-
uint32_t test2 {0};
3954+
const int32_t test1 {2};
3955+
int32_t test2 {0};
39493956

39503957
//{{{ Successful setters
3951-
EXPECT_EQ(data->set_uint32_value(MEMBER_ID_INVALID, test1), RETCODE_OK);
3952-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3953-
EXPECT_EQ(2u, test2);
3958+
EXPECT_EQ(data->set_int32_value(MEMBER_ID_INVALID, test1), RETCODE_OK);
3959+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3960+
EXPECT_EQ(2, test2);
39543961

3955-
EXPECT_EQ(data->set_uint8_value(MEMBER_ID_INVALID, 3), RETCODE_OK);
3956-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3957-
EXPECT_EQ(3u, test2);
3962+
EXPECT_EQ(data->set_int8_value(MEMBER_ID_INVALID, -3), RETCODE_OK);
3963+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3964+
EXPECT_EQ(-3, test2);
39583965

3959-
EXPECT_EQ(data->set_uint16_value(MEMBER_ID_INVALID, 1), RETCODE_OK);
3960-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3961-
EXPECT_EQ(1u, test2);
3966+
EXPECT_EQ(data->set_uint8_value(MEMBER_ID_INVALID, 3u), RETCODE_OK);
3967+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3968+
EXPECT_EQ(3, test2);
3969+
3970+
EXPECT_EQ(data->set_int16_value(MEMBER_ID_INVALID, -1), RETCODE_OK);
3971+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3972+
EXPECT_EQ(-1, test2);
3973+
3974+
EXPECT_EQ(data->set_uint16_value(MEMBER_ID_INVALID, 1u), RETCODE_OK);
3975+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3976+
EXPECT_EQ(1, test2);
3977+
3978+
EXPECT_EQ(data->set_char8_value(MEMBER_ID_INVALID, 'a'), RETCODE_OK);
3979+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3980+
EXPECT_EQ(97, test2);
3981+
3982+
EXPECT_EQ(data->set_char16_value(MEMBER_ID_INVALID, L'a'), RETCODE_OK);
3983+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3984+
EXPECT_EQ(97, test2);
39623985

39633986
EXPECT_EQ(data->set_boolean_value(MEMBER_ID_INVALID, false), RETCODE_OK);
3964-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3965-
EXPECT_EQ(0u, test2);
3987+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3988+
EXPECT_EQ(0, test2);
39663989

39673990
EXPECT_EQ(data->set_byte_value(MEMBER_ID_INVALID, 2), RETCODE_OK);
3968-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3969-
EXPECT_EQ(2u, test2);
3991+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
3992+
EXPECT_EQ(2, test2);
39703993
//}}}
39713994

39723995
//{{{ Failing setters
39733996
{
39743997
eprosima::fastdds::testing::ScopeLogs _("disable");
3975-
EXPECT_EQ(data->set_int32_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
3976-
EXPECT_EQ(data->set_int8_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
3977-
EXPECT_EQ(data->set_int16_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
3998+
EXPECT_EQ(data->set_uint32_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
39783999
EXPECT_EQ(data->set_int64_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
39794000
EXPECT_EQ(data->set_uint64_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
39804001
EXPECT_EQ(data->set_float32_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
39814002
EXPECT_EQ(data->set_float64_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
39824003
EXPECT_EQ(data->set_float128_value(MEMBER_ID_INVALID, 0), RETCODE_BAD_PARAMETER);
3983-
EXPECT_EQ(data->set_char8_value(MEMBER_ID_INVALID, 'a'), RETCODE_BAD_PARAMETER);
3984-
EXPECT_EQ(data->set_char16_value(MEMBER_ID_INVALID, L'a'), RETCODE_BAD_PARAMETER);
39854004
EXPECT_EQ(data->set_string_value(MEMBER_ID_INVALID, ""), RETCODE_BAD_PARAMETER);
39864005
EXPECT_EQ(data->set_wstring_value(MEMBER_ID_INVALID, L""), RETCODE_BAD_PARAMETER);
39874006
EXPECT_EQ(data->set_int8_values(MEMBER_ID_INVALID, {0}), RETCODE_BAD_PARAMETER);
@@ -4009,10 +4028,6 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
40094028
EXPECT_EQ(data->get_int64_value(iTest64, MEMBER_ID_INVALID), RETCODE_OK);
40104029
EXPECT_EQ(2, iTest64);
40114030

4012-
uint64_t uTest64 {0};
4013-
EXPECT_EQ(data->get_uint64_value(uTest64, MEMBER_ID_INVALID), RETCODE_OK);
4014-
EXPECT_EQ(2, uTest64);
4015-
40164031
double fTest64 {0};
40174032
EXPECT_EQ(data->get_float64_value(fTest64, MEMBER_ID_INVALID), RETCODE_OK);
40184033
EXPECT_EQ(2, fTest64);
@@ -4025,8 +4040,8 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
40254040
//{{{ Failing getters
40264041
{
40274042
eprosima::fastdds::testing::ScopeLogs _("disable");
4028-
int32_t iTest32 {0};
4029-
EXPECT_EQ(data->get_int32_value(iTest32, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
4043+
uint32_t uTest32 {0};
4044+
EXPECT_EQ(data->get_uint32_value(uTest32, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
40304045
int8_t iTest8;
40314046
EXPECT_EQ(data->get_int8_value(iTest8, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
40324047
uint8_t uTest8;
@@ -4035,6 +4050,8 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
40354050
EXPECT_EQ(data->get_int16_value(iTest16, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
40364051
uint16_t uTest16 {0};
40374052
EXPECT_EQ(data->get_uint16_value(uTest16, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
4053+
uint64_t uTest64 {0};
4054+
EXPECT_EQ(data->get_uint64_value(uTest64, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
40384055
float fTest32 {0};
40394056
EXPECT_EQ(data->get_float32_value(fTest32, MEMBER_ID_INVALID), RETCODE_BAD_PARAMETER);
40404057
char cTest8 {0};
@@ -4113,27 +4130,27 @@ TEST_F(DynamicTypesTests, DynamicType_enum)
41134130
// Encoding/decoding
41144131
for (auto encoding : encodings)
41154132
{
4116-
uint32_t test3 {0};
4133+
int32_t test3 {0};
41174134
DynamicData::_ref_type data2 {DynamicDataFactory::get_instance()->create_data(created_type)};
41184135
encoding_decoding_test(created_type, data, data2, encoding);
4119-
EXPECT_EQ(data2->get_uint32_value(test3, MEMBER_ID_INVALID), RETCODE_OK);
4136+
EXPECT_EQ(data2->get_int32_value(test3, MEMBER_ID_INVALID), RETCODE_OK);
41204137
EXPECT_EQ(test1, test3);
41214138
EXPECT_EQ(DynamicDataFactory::get_instance()->delete_data(data2), RETCODE_OK);
41224139
}
41234140

41244141
// Test clear functions.
41254142
EXPECT_EQ(RETCODE_OK, data->clear_all_values());
4126-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
4127-
EXPECT_EQ(0u, test2);
4128-
EXPECT_EQ(data->set_uint32_value(MEMBER_ID_INVALID, test1), RETCODE_OK);
4143+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
4144+
EXPECT_EQ(0, test2);
4145+
EXPECT_EQ(data->set_int32_value(MEMBER_ID_INVALID, test1), RETCODE_OK);
41294146
EXPECT_EQ(RETCODE_OK, data->clear_nonkey_values());
4130-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
4131-
EXPECT_EQ(0u, test2);
4132-
EXPECT_EQ(data->set_uint32_value(MEMBER_ID_INVALID, test1), RETCODE_OK);
4147+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
4148+
EXPECT_EQ(0, test2);
4149+
EXPECT_EQ(data->set_int32_value(MEMBER_ID_INVALID, test1), RETCODE_OK);
41334150
EXPECT_EQ(RETCODE_OK, data->clear_value(MEMBER_ID_INVALID));
41344151
EXPECT_EQ(RETCODE_BAD_PARAMETER, data->clear_value(100));
4135-
EXPECT_EQ(data->get_uint32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
4136-
EXPECT_EQ(0u, test2);
4152+
EXPECT_EQ(data->get_int32_value(test2, MEMBER_ID_INVALID), RETCODE_OK);
4153+
EXPECT_EQ(0, test2);
41374154

41384155
EXPECT_EQ(DynamicDataFactory::get_instance()->delete_data(data), RETCODE_OK);
41394156
}

test/unittest/dds/topic/DDSSQLFilter/data_types/ContentFilterTestType.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
* @brief This class represents the enumeration Color defined by the user in the IDL file.
5959
* @ingroup ContentFilterTestType
6060
*/
61-
enum class Color : uint32_t
61+
enum class Color : int32_t
6262
{
6363
RED,
6464
GREEN,
@@ -70,7 +70,7 @@ enum class Color : uint32_t
7070
* @brief This class represents the enumeration Material defined by the user in the IDL file.
7171
* @ingroup ContentFilterTestType
7272
*/
73-
enum class Material : uint32_t
73+
enum class Material : int32_t
7474
{
7575
WOOD,
7676
PLASTIC,

0 commit comments

Comments
 (0)