/* * Author: Patrick-Christopher Mattulat * Company: Lynar Studios * E-Mail: webmaster@lynarstudios.com * Created: 2020-08-19 * Changed: 2024-05-25 * * */ #ifndef LS_STD_STORABLE_FILE_HPP #define LS_STD_STORABLE_FILE_HPP #include "File.hpp" #include #include #include #include /* * @class(name: 'StorableFile', package: 'io') * */ namespace ls::std::io { class LS_STD_DYNAMIC_GOAL StorableFile : public ls::std::core::interface_type::IStorable { public: explicit StorableFile(const ::std::string &_path); ~StorableFile() noexcept override; [[nodiscard]] ::std::shared_ptr getFile() const; [[nodiscard]] ls::std::core::type::byte_field load() override; void reset(const ::std::string &_path); void save(const ls::std::core::type::byte_field &_data) override; private: ::std::shared_ptr file{}; void _init(const ::std::string &_path); }; } #endif