json_reader.hpp 844 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <fstream>
  2. #include "../lib/nlohmann/json.hpp"
  3. #ifndef _JSON_READER_HPP_
  4. #define _JSON_READER_HPP_
  5. namespace alex
  6. {
  7. /**
  8. * @class JsonReader
  9. *
  10. * @brief Simple json reader class which open file and read data in json format from file
  11. */
  12. class JsonReader
  13. {
  14. public:
  15. JsonReader() noexcept;
  16. JsonReader(const std::string& filename) noexcept;
  17. JsonReader(const JsonReader&) = delete;
  18. JsonReader& operator=(const JsonReader&) = delete;
  19. ~JsonReader() noexcept;
  20. inline void set_filename(const std::string& new_filename) noexcept
  21. { m_filename = new_filename; }
  22. nlohmann::json read() noexcept;
  23. private:
  24. std::string m_filename;
  25. std::ifstream m_in_file_stream;
  26. };
  27. } // namespace alex
  28. #endif // _JSON_READER_HPP_