Revise TopComponentCppWriter

This commit is contained in:
Rob Bocchino 2025-11-06 13:29:16 -08:00
parent e0bd6a08da
commit fbb73a113b
3 changed files with 68 additions and 13 deletions

View File

@ -89,10 +89,32 @@ case class TopComponentCppWriter (
) = {
val ident = CppWriterState.identFromQualifiedName(componentInstance.qualifiedName)
val instanceIds = s"${topologyQualifierPrefix}InstanceIds"
lines(
s"""|case $instanceIds::$ident:
| // TODO
| break;"""
List.concat(
line(s"case $instanceIds::$ident:") ::
writeIsConnectedPortNumCase(portNumberMap).map(indentIn),
lines(" break;")
)
}
private def writeIsConnectedPortNumCase(
portNumberMap: TopComponents.PortNumberMap
) = {
val portNumberList = portNumberMap.keys.toList.sorted
wrapInSwitch(
"portNum",
List.concat(
portNumberList.flatMap (n => {
lines(
s"""|case $n:
| result = true;
| break;"""
)
}),
lines(
"""|default:
| break;"""
)
)
)
}
@ -105,7 +127,7 @@ case class TopComponentCppWriter (
val name = s"$componentClassName::$shortName"
lines(
s"""|
|// TODO: $name"""
|// TODO: Implementation for $name"""
)
}

View File

@ -174,10 +174,22 @@ namespace M {
const auto instance = this->getInstance();
switch (instance) {
case ::M::InstanceIds::M_passive1:
// TODO
switch (portNum) {
case 0:
result = true;
break;
default:
break;
}
break;
case ::M::InstanceIds::M_passive2:
// TODO
switch (portNum) {
case 0:
result = true;
break;
default:
break;
}
break;
default:
FW_ASSERT(0, static_cast<FwAssertArgType>(instance));
@ -186,7 +198,7 @@ namespace M {
return result;
}
// TODO: PassiveComponentBase::p_out
// TODO: Implementation for PassiveComponentBase::p_out
}

View File

@ -164,10 +164,22 @@ namespace M {
const auto instance = this->getInstance();
switch (instance) {
case ::M::InstanceIds::M_c1:
// TODO
switch (portNum) {
case 0:
result = true;
break;
default:
break;
}
break;
case ::M::InstanceIds::M_c2:
// TODO
switch (portNum) {
case 0:
result = true;
break;
default:
break;
}
break;
default:
FW_ASSERT(0, static_cast<FwAssertArgType>(instance));
@ -176,7 +188,7 @@ namespace M {
return result;
}
// TODO: CComponentBase::pingOut_out
// TODO: Implementation for CComponentBase::pingOut_out
}
@ -188,7 +200,16 @@ namespace Svc {
const auto instance = this->getInstance();
switch (instance) {
case ::M::InstanceIds::M_health:
// TODO
switch (portNum) {
case 0:
result = true;
break;
case 1:
result = true;
break;
default:
break;
}
break;
default:
FW_ASSERT(0, static_cast<FwAssertArgType>(instance));
@ -197,7 +218,7 @@ namespace Svc {
return result;
}
// TODO: HealthComponentBase::pingOut_out
// TODO: Implementation for HealthComponentBase::pingOut_out
}