GEOSX
HDFFile.hpp
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 Total, S.A
8  * Copyright (c) 2020- GEOSX Contributors
9  * All right reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
15 #ifndef GEOS_HDFFILE_HPP
16 #define GEOS_HDFFILE_HPP
17 
18 #include "common/DataTypes.hpp"
19 
20 namespace geos
21 {
22 
27 class HDFFile
28 {
29 public:
37  HDFFile( string const & fnm, bool deleteExisting, bool parallelAccess, MPI_Comm comm );
38 
43 
49  bool hasDataset( const string & name ) const;
50 
55  operator int64_t() const { return m_fileId; }
56 private:
58  string m_filename;
60  int64_t m_fileId;
62  int64_t m_faplId;
64  bool m_mpioFapl;
66  MPI_Comm m_comm;
67 };
68 
69 }
70 
71 #endif //GEOS_HDFFILE_HPP
HDFFile(string const &fnm, bool deleteExisting, bool parallelAccess, MPI_Comm comm)
Constructor – this creates/opens the target file for read/write.
bool hasDataset(const string &name) const
Whether a dataset/group with the specified name exists in the target.
~HDFFile()
Closes the file and accessors.