Swap regCommands() and configureTopology() in Topology.cpp
Move BufferManager Setup and Framing/Deframing setup to front in configureTopology() in Topology.cpp
Rationale
Registering commands also generates events as a byproduct. In a hub pattern implementation connected to eventLogging, the hub will assert since it tries to handle the events before configureTopology() is called (and the bufferManager is not setup).
There may be other similar implementations from other projects that require a more specific setup before their components are ready to handle commands and events.
Have not found a use case to handle commands before the system setup is completed.
BufferManager and Framing/Deframing should be setup before readParamFile() is called. This also sends an event and the hub would assert before the bufferManager and deframer is setup.
Testing/Review Recommendations
CI to ensure standard projects are working correctly
Change Description
Swap
regCommands()
andconfigureTopology()
in Topology.cpp Move BufferManager Setup and Framing/Deframing setup to front inconfigureTopology()
in Topology.cppRationale
Registering commands also generates events as a byproduct. In a hub pattern implementation connected to eventLogging, the hub will assert since it tries to handle the events before
configureTopology()
is called (and the bufferManager is not setup).There may be other similar implementations from other projects that require a more specific setup before their components are ready to handle commands and events.
Have not found a use case to handle commands before the system setup is completed.
BufferManager and Framing/Deframing should be setup before
readParamFile()
is called. This also sends an event and the hub would assert before the bufferManager and deframer is setup.Testing/Review Recommendations
CI to ensure standard projects are working correctly
CC: @timcanham @LeStarch @bocchino @Joshua-Anderson