@@ -22,8 +22,8 @@ template<typename T1, typename T2>
22
22
ReturnCode_t read_tryconstruct_struct (const DataReader_var& dr, const T1& pdr, T2& data,
23
23
const std::string& expected_value)
24
24
{
25
- ReturnCode_t ret = RETCODE_OK ;
26
- if (( ret = read_i (dr, pdr, data)) == RETCODE_OK) {
25
+ ReturnCode_t ret = read_i (dr, pdr, data) ;
26
+ if (ret == RETCODE_OK) {
27
27
if (data.length () != 1 ) {
28
28
ACE_ERROR ((LM_ERROR, " ERROR: reader: unexpected data length: %d\n " , data.length ()));
29
29
ret = RETCODE_ERROR;
@@ -45,8 +45,8 @@ ReturnCode_t read_tryconstruct_struct(const DataReader_var& dr, const T1& pdr, T
45
45
template <typename T1, typename T2>
46
46
ReturnCode_t read_struct (const DataReader_var& dr, const T1& pdr, T2& data)
47
47
{
48
- ReturnCode_t ret = RETCODE_OK ;
49
- if (( ret = read_i (dr, pdr, data)) == RETCODE_OK) {
48
+ ReturnCode_t ret = read_i (dr, pdr, data) ;
49
+ if (ret == RETCODE_OK) {
50
50
if (data.length () != 1 ) {
51
51
ACE_ERROR ((LM_ERROR, " reader: unexpected data length: %d\n " , data.length ()));
52
52
ret = RETCODE_ERROR;
@@ -64,11 +64,36 @@ ReturnCode_t read_struct(const DataReader_var& dr, const T1& pdr, T2& data)
64
64
return ret;
65
65
}
66
66
67
+ template <typename T1, typename T2>
68
+ ReturnCode_t read_extended_struct (const DataReader_var& dr, const T1& pdr, T2& data)
69
+ {
70
+ ReturnCode_t ret = read_i (dr, pdr, data);
71
+ if (ret == RETCODE_OK) {
72
+ if (data.length () != 1 ) {
73
+ ACE_ERROR ((LM_ERROR, " reader: unexpected data length: %d\n " , data.length ()));
74
+ ret = RETCODE_ERROR;
75
+ } else if (data[0 ].key_field != key_value) {
76
+ ACE_ERROR ((LM_ERROR, " reader: expected key value: %d, received: %d\n " , key_value, data[0 ].key_field ));
77
+ ret = RETCODE_ERROR;
78
+ } else if (data[0 ].additional_field != 0 ) {
79
+ ACE_ERROR ((LM_ERROR, " reader: expected additional_field: %d, received: %d\n " , 0 , data[0 ].additional_field ));
80
+ ret = RETCODE_ERROR;
81
+ } else if (verbose) {
82
+ ACE_DEBUG ((LM_DEBUG, " reader: %d additional_field: %d\n " , data[0 ].key_field , data[0 ].additional_field ));
83
+ }
84
+ } else {
85
+ ACE_ERROR ((LM_ERROR, " ERROR: Reader: read_i returned %C\n " ,
86
+ OpenDDS::DCPS::retcode_to_string (ret)));
87
+ }
88
+
89
+ return ret;
90
+ }
91
+
67
92
template <typename T1, typename T2>
68
93
ReturnCode_t read_union (const DataReader_var& dr, const T1& pdr, T2& data)
69
94
{
70
- ReturnCode_t ret = RETCODE_OK ;
71
- if (( ret = read_i (dr, pdr, data)) == RETCODE_OK) {
95
+ ReturnCode_t ret = read_i (dr, pdr, data) ;
96
+ if (ret == RETCODE_OK) {
72
97
if (data.length () != 1 ) {
73
98
ACE_ERROR ((LM_ERROR, " reader: unexpected data length: %d\n " , data.length ()));
74
99
ret = RETCODE_ERROR;
@@ -128,6 +153,13 @@ ReturnCode_t read_appendable_struct(const DataReader_var& dr)
128
153
return read_struct (dr, pdr, data);
129
154
}
130
155
156
+ ReturnCode_t read_extended_appendable_struct (const DataReader_var& dr)
157
+ {
158
+ ExtendedAppendableStructDataReader_var pdr = ExtendedAppendableStructDataReader::_narrow (dr);
159
+ ::ExtendedAppendableStructSeq data;
160
+ return read_extended_struct (dr, pdr, data);
161
+ }
162
+
131
163
ReturnCode_t read_appendable_struct_no_xtypes (const DataReader_var& dr)
132
164
{
133
165
AppendableStructNoXTypesDataReader_var pdr = AppendableStructNoXTypesDataReader::_narrow (dr);
@@ -250,6 +282,9 @@ int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
250
282
} else if (type == " AppendableStruct" ) {
251
283
AppendableStructTypeSupport_var ts = new AppendableStructTypeSupportImpl;
252
284
failed = !get_topic (ts, dp, topic_name, topic, registered_type_name);
285
+ } else if (type == " ExtendedAppendableStruct" ) {
286
+ ExtendedAppendableStructTypeSupport_var ts = new ExtendedAppendableStructTypeSupportImpl;
287
+ failed = !get_topic (ts, dp, topic_name, topic, registered_type_name);
253
288
} else if (type == " AppendableStructNoXTypes" ) {
254
289
AppendableStructNoXTypesTypeSupport_var ts = new AppendableStructNoXTypesTypeSupportImpl;
255
290
failed = !get_topic (ts, dp, topic_name, topic, registered_type_name);
@@ -402,6 +437,8 @@ int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
402
437
failed = (read_plain_cdr_struct (dr) != RETCODE_OK);
403
438
} else if (type == " AppendableStruct" ) {
404
439
failed = (read_appendable_struct (dr) != RETCODE_OK);
440
+ } else if (type == " ExtendedAppendableStruct" ) {
441
+ failed = (read_extended_appendable_struct (dr) != RETCODE_OK);
405
442
} else if (type == " AppendableStructNoXTypes" ) {
406
443
failed = (read_appendable_struct_no_xtypes (dr) != RETCODE_OK);
407
444
} else if (type == " FinalStructSub" ) {
0 commit comments