Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <hdf5.h> 7 : #include <string> 8 : #include <vector> 9 : 10 : #include "IO/H5/Object.hpp" 11 : #include "IO/H5/OpenGroup.hpp" 12 : 13 : namespace h5 { 14 : /*! 15 : * \ingroup HDF5Group 16 : * \brief Writes an archive of the source tree into a dataset. 17 : */ 18 1 : class SourceArchive : public h5::Object { 19 : public: 20 : /// \cond HIDDEN_SYMOLS 21 : static std::string extension() { return ".tar.gz"; } 22 : 23 : SourceArchive(bool exists, detail::OpenGroup&& group, hid_t location, 24 : const std::string& name); 25 : 26 : SourceArchive(const SourceArchive&) = delete; 27 : SourceArchive& operator=(const SourceArchive&) = delete; 28 : 29 : SourceArchive(SourceArchive&&) = delete; // NOLINT 30 : SourceArchive& operator=(SourceArchive&&) = delete; // NOLINT 31 : 32 : ~SourceArchive() override = default; 33 : /// \endcond 34 : 35 0 : const std::vector<char>& get_archive() const { return source_archive_; } 36 : 37 1 : const std::string& subfile_path() const override { return path_; } 38 : 39 : private: 40 : /// \cond HIDDEN_SYMBOLS 41 : detail::OpenGroup group_; 42 : std::vector<char> source_archive_; 43 : std::string path_; 44 : /// \endcond 45 : }; 46 : } // namespace h5