#pragma once #include "register_repository.h" class ActiveRegisterRepository final : public RegisterRepository { public: explicit ActiveRegisterRepository(RegisterRepository &initial_repository); void use(RegisterRepository &repository); BitReadResult readBit(const RegisterAddress &address) const override; RegisterWriteResult writeBit(const RegisterAddress &address, bool value) override; WordReadResult readWord(const RegisterAddress &address) const override; RegisterWriteResult writeWord( const RegisterAddress &address, std::int16_t value) override; private: RegisterRepository *repository_ = nullptr; };