@@ -1122,7 +1122,7 @@ std::string Generator::getInputCppType(const InputField& field) const noexcept
1122
1122
return inputType.str ();
1123
1123
}
1124
1124
1125
- std::string Generator::getOutputCppType (const OutputField& field) const noexcept
1125
+ std::string Generator::getOutputCppType (const OutputField& field, bool interfaceField ) const noexcept
1126
1126
{
1127
1127
bool nonNull = true ;
1128
1128
size_t templateCount = 0 ;
@@ -1178,10 +1178,18 @@ std::string Generator::getOutputCppType(const OutputField& field) const noexcept
1178
1178
case OutputFieldType::Builtin:
1179
1179
case OutputFieldType::Scalar:
1180
1180
case OutputFieldType::Enum:
1181
- case OutputFieldType::Object:
1182
1181
outputType << getCppType (field.type );
1183
1182
break ;
1184
1183
1184
+ case OutputFieldType::Object:
1185
+ if (interfaceField)
1186
+ {
1187
+ outputType << R"cpp( object::)cpp" ;
1188
+ }
1189
+
1190
+ outputType << field.type ;
1191
+ break ;
1192
+
1185
1193
case OutputFieldType::Union:
1186
1194
case OutputFieldType::Interface:
1187
1195
outputType << R"cpp( service::Object)cpp" ;
@@ -1341,7 +1349,7 @@ struct )cpp" << interfaceType.type << R"cpp(
1341
1349
)cpp" ;
1342
1350
for (const auto & outputField : interfaceType.fields )
1343
1351
{
1344
- headerFile << getFieldDeclaration (outputField);
1352
+ headerFile << getFieldDeclaration (outputField, true );
1345
1353
}
1346
1354
headerFile << R"cpp( };
1347
1355
)cpp" ;
@@ -1421,7 +1429,7 @@ class )cpp" << objectType.type << R"cpp(
1421
1429
firstField = false ;
1422
1430
}
1423
1431
1424
- headerFile << getFieldDeclaration (outputField);
1432
+ headerFile << getFieldDeclaration (outputField, false );
1425
1433
}
1426
1434
1427
1435
headerFile << R"cpp(
@@ -1517,13 +1525,13 @@ std::string Generator::getFieldDeclaration(const InputField& inputField) const n
1517
1525
return output.str ();
1518
1526
}
1519
1527
1520
- std::string Generator::getFieldDeclaration (const OutputField& outputField) const noexcept
1528
+ std::string Generator::getFieldDeclaration (const OutputField& outputField, bool interfaceField ) const noexcept
1521
1529
{
1522
1530
std::ostringstream output;
1523
1531
std::string fieldName (outputField.name );
1524
1532
1525
1533
fieldName[0 ] = std::toupper (fieldName[0 ]);
1526
- output << R"cpp( virtual std::future<)cpp" << getOutputCppType (outputField)
1534
+ output << R"cpp( virtual std::future<)cpp" << getOutputCppType (outputField, interfaceField )
1527
1535
<< R"cpp( > get)cpp" << fieldName << R"cpp( (service::FieldParams&& params)cpp" ;
1528
1536
1529
1537
for (const auto & argument : outputField.arguments )
0 commit comments