Xmipp  v3.23.11-Nereus
xmipp_hdf5.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Authors: Joaquin Oton (joton@cnb.csic.es)
3  *
4  *
5  * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20  * 02111-1307 USA
21  *
22  * All comments concerning this program package may be sent to the
23  * e-mail address 'xmipp@cnb.csic.es'
24  ***************************************************************************/
25 
26 #ifndef CORE_XMIPP_HDF5_H_
27 #define CORE_XMIPP_HDF5_H_
28 
29 #include <iostream>
30 #include<map>
31 #include "hdf5.h"
32 #include "H5Cpp.h"
33 #include "matrix1d.h"
34 
35 
36 
44 {
48 } ;
49 
50 
51 typedef std::pair<H5FileProvider, String> H5infoProvider;
52 std::map<String, H5infoProvider > createProviderMap();
53 
56 const std::map<String, H5infoProvider > H5ProviderMap = createProviderMap();
57 
64 H5infoProvider getProvider(hid_t fhdf5);
65 
66 
67 
68 
69 class XmippH5File: public H5::H5File
70 {
71 
72 public:
73 
78  void showTree(std::ostream &out = std::cout);
79 
86  void openFile(const H5std_string& name, unsigned int flags,
87  const H5::FileAccPropList& access_plist = H5::FileAccPropList::DEFAULT);
88 
96  int getDataset(const char* dsname, Matrix1D<double> &data, bool reportError = true) const;
97 
103  bool checkDataset(const char* dsname) const;
104 };
105 
106 herr_t showObjectInfo(hid_t group, const char *name, void *op_data);
107 
108 
111 #endif /* XMIPP_HDF5_H_ */
H5FileProvider
Definition: xmipp_hdf5.h:43
void showTree(std::ostream &out=std::cout)
Definition: xmipp_hdf5.cpp:191
void openFile(const H5std_string &name, unsigned int flags, const H5::FileAccPropList &access_plist=H5::FileAccPropList::DEFAULT)
Definition: xmipp_hdf5.cpp:112
std::pair< H5FileProvider, String > H5infoProvider
Definition: xmipp_hdf5.h:51
bool checkDataset(const char *dsname) const
Definition: xmipp_hdf5.cpp:121
H5infoProvider getProvider(hid_t fhdf5)
Definition: xmipp_hdf5.cpp:202
const std::map< String, H5infoProvider > H5ProviderMap
Definition: xmipp_hdf5.h:56
herr_t showObjectInfo(hid_t group, const char *name, void *op_data)
Definition: xmipp_hdf5.cpp:36
std::map< String, H5infoProvider > createProviderMap()
Definition: xmipp_hdf5.cpp:102
int getDataset(const char *dsname, Matrix1D< double > &data, bool reportError=true) const
Definition: xmipp_hdf5.cpp:137