QDaq  0.2.6
Qt-based Data Aqcuisition
 All Classes Functions Variables Typedefs Enumerations Enumerator Properties Groups Pages
h5helper_v1_0.h
1 #ifndef H5HELPER_V1_0_H
2 #define H5HELPER_V1_0_H
3 
4 #include "qdaqh5file.h"
5 
6 
7 /* Rules for H5 serialization - v1.0
8  * - Objects are written as H5 groups
9  * - Object properties are written as datasets of the group
10  * - Base class QDaqObject::writeH5/readH5 handle all QDaq property types
11  * - Other object data (like in QDaqDataBuffer) are also datasets
12  * - need to override the basic writeH5/readH5 to handle the object special data reading/writing
13  * - Root object -> write as any other obj / read as a plain QDaqObj
14  */
15 
16 class h5helper_v1_0 : public h5helper
17 {
18 protected:
19  virtual void writeDynamicProperties(CommonFG* h5obj, const QDaqObject* m_object);
20  virtual void readDynamicProperties(CommonFG* h5obj, QDaqObject* m_object);
21 
22 
23 public:
24  explicit h5helper_v1_0(QDaqH5File* f) : h5helper(QDaqH5File::V_1_0, 1, 0, f)
25  {}
26 
27  virtual void write(CommonFG* h5obj, const char* name, const int &v);
28  virtual void write(CommonFG* h5obj, const char* name, const double& v);
29  virtual void write(CommonFG* h5obj, const char* name, const QString& S);
30  virtual void write(CommonFG* h5obj, const char* name, const QStringList& S);
31  virtual void write(CommonFG* h5obj, const char* name, const QDaqVector &v);
32  virtual void write(CommonFG* , const char* , const QDaqObject*) {}
33  virtual void write(CommonFG* , const char* , const QDaqObjectList & ) {}
34 
35  virtual bool read(CommonFG* h5obj, const char* name, int& value);
36  virtual bool read(CommonFG* h5obj, const char* name, double& value);
37  virtual bool read(CommonFG* h5obj, const char* name, QString& str);
38  virtual bool read(CommonFG* h5obj, const char* name, QStringList& S);
39  virtual bool read(CommonFG* h5obj, const char* name, QDaqVector& value);
40 
41  virtual void writeProperties(CommonFG* h5obj, const QDaqObject* m_object, const QMetaObject* metaObject);
42  virtual void readProperties(CommonFG* h5obj, QDaqObject* obj);
43 
44  virtual void lockedPropertyList(QStringList S = QStringList()) { Q_UNUSED(S); }
45 
46  virtual void connectDeferedPointers() {}
47 
48  virtual Group createGroup(CommonFG* loc, const char* name);
49 
50  virtual QByteArrayList getGroupNames(CommonFG* h5g, bool isRoot = false);
51 };
52 
53 
54 
55 
56 
57 #endif // H5HELPER_V1_0_H
Base class of all QDaq objects.
Definition: QDaqObject.h:108
A buffer for storing double numbers.
Definition: QDaqVector.h:40
QList< QDaqObject * > QDaqObjectList
A QList of QDaqObject pointers.
Definition: QDaqObject.h:23