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 : 8 : #include "Utilities/ForceInline.hpp" 9 : 10 : // H5F wrappers 11 : namespace h5 { 12 : /// \ingroup HDF5Group 13 0 : SPECTRE_ALWAYS_INLINE auto h5f_acc_rdonly() { 14 : #pragma GCC diagnostic push 15 : #pragma GCC diagnostic ignored "-Wold-style-cast" 16 : return H5F_ACC_RDONLY; 17 : #pragma GCC diagnostic pop 18 : } 19 : 20 : /// \ingroup HDF5Group 21 0 : SPECTRE_ALWAYS_INLINE auto h5f_acc_rdwr() { 22 : #pragma GCC diagnostic push 23 : #pragma GCC diagnostic ignored "-Wold-style-cast" 24 : return H5F_ACC_RDWR; 25 : #pragma GCC diagnostic pop 26 : } 27 : 28 0 : SPECTRE_ALWAYS_INLINE auto h5f_acc_trunc() { 29 : #pragma GCC diagnostic push 30 : #pragma GCC diagnostic ignored "-Wold-style-cast" 31 : return H5F_ACC_TRUNC; 32 : #pragma GCC diagnostic pop 33 : } 34 : } // namespace h5 35 : 36 : // H5P wrappers 37 : namespace h5 { 38 : /// \ingroup HDF5Group 39 0 : SPECTRE_ALWAYS_INLINE auto h5p_default() { 40 : #pragma GCC diagnostic push 41 : #pragma GCC diagnostic ignored "-Wold-style-cast" 42 : return H5P_DEFAULT; 43 : #pragma GCC diagnostic pop 44 : } 45 : } // namespace h5 46 : 47 : // H5S wrappers 48 : namespace h5 { 49 : /// \ingroup HDF5Group 50 0 : SPECTRE_ALWAYS_INLINE auto h5s_all() { 51 : #pragma GCC diagnostic push 52 : #pragma GCC diagnostic ignored "-Wold-style-cast" 53 : return H5S_ALL; 54 : #pragma GCC diagnostic pop 55 : } 56 : 57 : /// \ingroup HDF5Group 58 0 : SPECTRE_ALWAYS_INLINE auto h5s_unlimited() { 59 : #pragma GCC diagnostic push 60 : #pragma GCC diagnostic ignored "-Wold-style-cast" 61 : return H5S_UNLIMITED; 62 : #pragma GCC diagnostic pop 63 : } 64 : 65 : /// \ingroup HDF5Group 66 0 : SPECTRE_ALWAYS_INLINE auto h5s_scalar() { 67 : #pragma GCC diagnostic push 68 : #pragma GCC diagnostic ignored "-Wold-style-cast" 69 : return H5S_SCALAR; 70 : #pragma GCC diagnostic pop 71 : } 72 : } // namespace h5