10.2.4.1.3 : Le fichier RawHdf5_hdf5.h


Le RawHdf5_hdf5.h complet :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/***************************************
	Auteur : Pierre Aubert
	Mail : pierre.aubert@lapp.in2p3.fr
	Licence : CeCILL-C
****************************************/


//Warning : this file has been generated automatically by the phoenix_hdf5 program
//You can find it at https://gitlab.in2p3.fr/CTA-LAPP/PHOENIX_LIBS/PhoenixHDF5
//Do NOT modify it


#ifndef __RAWHDF5_HDF5_H__
#define __RAWHDF5_HDF5_H__

#include <iostream>
#include "H5Cpp.h"

#include "RawHdf5.h"


///@brief Raw data to be used to perform FFT on it
class RawHdf5H5 : public RawHdf5{
	public:
		RawHdf5H5();
		RawHdf5H5(const RawHdf5H5 & other);
		virtual ~RawHdf5H5();

		RawHdf5H5 & operator = (const RawHdf5H5 & other);
		void setTableName(const std::string & name);
		void read(const std::string & fileName);
		void read(const H5::H5File & file);
		void read(const H5::Group & group);

		void read(const std::string & fileName, size_t offset, size_t nbRow);
		void read(const H5::H5File & file, size_t offset, size_t nbRow);
		void read(const H5::Group & group, size_t offset, size_t nbRow);

		void write(const std::string & fileName) const;
		void write(H5::H5File & file) const;
		void write(H5::Group & group) const;

		H5::DataSet createDataSet(const std::string & fileName, size_t nbRow) const;
		H5::DataSet createDataSet(H5::H5File & file, size_t nbRow) const;
		H5::DataSet createDataSet(H5::Group & group, size_t nbRow) const;

		H5::DataSet openDataSet(const std::string & fileName) const;
		H5::DataSet openDataSet(const H5::H5File & file) const;
		H5::DataSet openDataSet(const H5::Group & group) const;

		void openDataSetBlock(const std::string & fileName, size_t nbMaxRowPerBlock);
		void openDataSetBlock(const H5::H5File & file, size_t nbMaxRowPerBlock);
		void openDataSetBlock(const H5::Group & group, size_t nbMaxRowPerBlock);


		size_t getOffsetSignal() const;
		H5::CompType getCompTypeAll() const;
		H5::CompType getCompTypeSignal() const;
		H5::DataType getTypeSignal() const;
		void readDataSet(const H5::DataSet & dataset);
		void readDataSet(const H5::DataSet & dataset, size_t offset, size_t nbRow);
		void writeDataSet(H5::DataSet & dataset) const;
		void openDataSetBlock(const H5::DataSet & dataset, size_t nbMaxRowPerBlock);
		bool iterateBlock();
		size_t getFullDataSetSize() const;
		size_t getBlockSize() const;
		size_t getBlockOffset() const;

	private:
		void initialisationRawHdf5H5();
		void copyRawHdf5H5(const RawHdf5H5 & other);
		void readDimSignal(const H5::CompType & compType);

		///HDF5 name of the table RawHdf5H5
		std::string p__tableName;

		///DataSet we have to use (only with openDataSetBlock)
		H5::DataSet p__dataset;
		///Total number of rows in the DataSet we have to use (only with openDataSetBlock)
		size_t p__totalDataSetRow;
		///Size of the block to be used (only with openDataSetBlock)
		size_t p__blockSize;
		///Offset of the current block (only with openDataSetBlock)
		size_t p__blockOffset;

};

#endif
Le fichier RawHdf5_hdf5.h est disponible ici.