// // Created by erki on 28.02.21. // #ifndef C_ANALYZER_OPERATIONSTORAGE_HPP #define C_ANALYZER_OPERATIONSTORAGE_HPP #include #include #include #include "OperationLog.hpp" class OperationStorage : public IOperationOutput { public: OperationStorage() = delete; OperationStorage(const OperationStorage&) = delete; explicit OperationStorage(const std::string& output_filename); ~OperationStorage() override; void enablePrettyPrint(); void pushOperation(const std::string& filename, OperationLog&& op) override; [[nodiscard]] const std::unordered_map>& getOperations() const; private: std::unordered_map> _operations; std::string _output_filename; bool _pretty_print = false; void _dumpToFile(); }; #endif //C_ANALYZER_OPERATIONSTORAGE_HPP