7 #include "QDaqObject.h"
27 friend class h5helper;
30 QStringList warnings_;
33 void newHelper(Version v);
34 void writeRecursive(CommonFG* h5g,
const QDaqObject* obj);
35 void readRecursive(CommonFG* h5g,
QDaqObject* &parent_obj);
37 static Version toVersion(
int mj,
int mn)
39 if (mj==1 && mn==0)
return V_1_0;
40 if (mj==1 && mn==1)
return V_1_1;
49 bool h5write(
const QDaqObject* obj,
const QString& filename);
53 h5helper* helper() {
return helper_; }
55 QString lastError()
const {
return lastError_; }
56 const QStringList& warnings()
const {
return warnings_; }
58 const QDaqObject* getTopObject()
const {
return top_; }
65 QDaqH5File::Version ver_;
69 virtual void writeDynamicProperties(CommonFG* h5obj,
const QDaqObject* m_object) = 0;
70 virtual void readDynamicProperties(CommonFG* h5obj,
QDaqObject* m_object) = 0;
72 struct deferedPtrData {
77 deferedPtrData(
QDaqObject* o = 0,
const char* n = 0,
const QString& p = QString()) :
78 obj(o), propName(n), isList(false)
80 if (!p.isEmpty()) pathList << p;
82 deferedPtrData(
QDaqObject* o,
const char* n,
const QStringList& p) :
83 obj(o), propName(n), pathList(p), isList(true)
87 QList<deferedPtrData> deferedPtrs;
90 h5helper(QDaqH5File::Version v,
int mj,
int mn, QDaqH5File* f) :
91 ver_(v), major_(mj), minor_(mn), file_(f)
96 QDaqH5File::Version version()
const {
return ver_; }
98 int major()
const {
return major_; }
99 int minor()
const {
return minor_; }
101 virtual void write(CommonFG* h5obj,
const char* name,
const int &v) = 0;
102 virtual void write(CommonFG* h5obj,
const char* name,
const double& v) = 0;
103 virtual void write(CommonFG* h5obj,
const char* name,
const QString& S) = 0;
104 virtual void write(CommonFG* h5obj,
const char* name,
const QStringList& S) = 0;
105 virtual void write(CommonFG* h5obj,
const char* name,
const QDaqVector& value) = 0;
106 virtual void write(CommonFG* h5obj,
const char* name,
const QDaqObject* obj) = 0;
107 virtual void write(CommonFG* ,
const char* ,
const QDaqObjectList & ) = 0;
109 virtual bool read(CommonFG* h5obj,
const char* name,
int& value) = 0;
110 virtual bool read(CommonFG* h5obj,
const char* name,
double& value) = 0;
111 virtual bool read(CommonFG* h5obj,
const char* name, QString& str) = 0;
112 virtual bool read(CommonFG* h5obj,
const char* name, QStringList& S) = 0;
113 virtual bool read(CommonFG* h5obj,
const char* name,
QDaqVector& value) = 0;
115 virtual void writeProperties(CommonFG* h5obj,
const QDaqObject* m_object,
const QMetaObject* metaObject) = 0;
116 virtual void readProperties(CommonFG* h5obj,
QDaqObject* obj) = 0;
118 virtual void lockedPropertyList(QStringList S = QStringList()) = 0;
120 virtual void connectDeferedPointers() = 0;
122 virtual Group createGroup(CommonFG* loc,
const char* name) = 0;
124 virtual QByteArrayList getGroupNames(CommonFG* h5obj,
bool isRoot =
false) = 0;
127 bool h5exist_ds(CommonFG* h5obj,
const char* name);
129 QString groupName(CommonFG* h5obj);
131 void pushWarning(
const QString& w) { file_->warnings_.push_back(w); }
133 void deferObjPtrRead(
QDaqObject* obj,
const char* name,
const QString& path);
134 void deferObjPtrRead(
QDaqObject* obj,
const char* name,
const QStringList& pathList);
137 #endif // QDAQH5FILE_H
Base class of all QDaq objects.
A buffer for storing double numbers.
QList< QDaqObject * > QDaqObjectList
A QList of QDaqObject pointers.