| 135 | class HarnessMemorySystem final : public IMemorySystem, public Implementation { |
| 136 | public: |
| 137 | explicit HarnessMemorySystem(ConfigNode controller_config) |
| 138 | : Implementation(ConfigNode(ConfigNode::Map{}), IMemorySystem::get_name(), "HarnessMemorySystem", nullptr) { |
| 139 | IMemorySystem::m_impl = this; |
| 140 | |
| 141 | ConfigNode wrapped = wrap_interface_config(IController::get_name(), std::move(controller_config)); |
| 142 | Implementation* controller_impl = Factory::create_implementation(IController::get_name(), wrapped, this); |
| 143 | add_child(controller_impl); |
| 144 | |
| 145 | m_controller = dynamic_cast<IController*>(controller_impl); |
| 146 | if (!m_controller) { |
| 147 | throw std::runtime_error("HarnessMemorySystem failed to create a controller"); |
| 148 | } |
| 149 | controller_impl->set_id("Channel 0"); |
| 150 | m_controller->m_channel_id = 0; |
| 151 | m_controller->m_clock_ratio = 1; |
| 152 | |
| 153 | gather_components(); |
| 154 | } |
| 155 | |
| 156 | void init() override {} |
| 157 | void setup(IFrontEnd* frontend, IMemorySystem* memory_system) override {} |
nothing calls this directly
no test coverage detected