1 /* 2 * Copyright (C) 1998-2018 ALPS Collaboration. See COPYRIGHT.TXT 3 * All rights reserved. Use is subject to license terms. See LICENSE.TXT 4 * For use in publications, see ACKNOWLEDGE.TXT 5 */ 6 7 #pragma once 8 9 #include <string> 10 11 #include <boost/noncopyable.hpp> 12 13 #include <hdf5.h> 14 15 namespace alps { 16 namespace hdf5 { 17 namespace detail { 18 19 struct archivecontext : boost::noncopyable { 20 21 archivecontext(std::string const & filename, bool write, bool replace, bool compress, bool memory); 22 ~archivecontext(); 23 24 void grant(bool write, bool replace); 25 26 bool compress_; 27 bool write_; 28 bool replace_; 29 bool memory_; 30 std::string filename_; 31 std::string filename_new_; 32 hid_t file_id_; 33 34 private: 35 36 void construct(); 37 void destruct(bool abort); 38 }; 39 } 40 } 41 } 42