#pragma once #include #include "Persistence/IDataRepository.h" class InMemoryRepository final : public IDataRepository { std::vector m_enums; std::vector m_structs; std::vector m_unions; std::vector m_typedefs; std::vector m_structures_information; std::vector m_fast_file_blocks; std::map m_data_definitions_by_name; std::map m_structure_information_by_definition; public: void Add(std::unique_ptr enumsDefinition) override; void Add(std::unique_ptr structDefinition) override; void Add(std::unique_ptr unionDefinition) override; void Add(std::unique_ptr typedefDefinition) override; void Add(std::unique_ptr structureInformation) override; void Add(std::unique_ptr fastFileBlock) override; _NODISCARD const std::vector& GetAllEnums() const override; _NODISCARD const std::vector& GetAllStructs() const override; _NODISCARD const std::vector& GetAllUnions() const override; _NODISCARD const std::vector& GetAllTypedefs() const override; _NODISCARD const std::vector& GetAllStructureInformation() const override; _NODISCARD const std::vector& GetAllFastFileBlocks() const override; _NODISCARD DataDefinition* GetDataDefinitionByName(const std::string& name) const override; _NODISCARD StructureInformation* GetInformationFor(DefinitionWithMembers* definitionWithMembers) const override; };