aboutsummaryrefslogtreecommitdiff
path: root/tool_src/QvLib/QvFieldData.h
diff options
context:
space:
mode:
Diffstat (limited to 'tool_src/QvLib/QvFieldData.h')
-rw-r--r--tool_src/QvLib/QvFieldData.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/tool_src/QvLib/QvFieldData.h b/tool_src/QvLib/QvFieldData.h
new file mode 100644
index 0000000..3fb74d8
--- /dev/null
+++ b/tool_src/QvLib/QvFieldData.h
@@ -0,0 +1,46 @@
+#ifndef _QV_FIELD_DATA_
+#define _QV_FIELD_DATA_
+
+#include <QvBasic.h>
+#include <QvPList.h>
+#include <QvString.h>
+
+class QvField;
+class QvInput;
+class QvNode;
+
+class QvFieldData {
+ public:
+ QvFieldData() {}
+ ~QvFieldData();
+
+ void addField(QvNode *defObject, const char *fieldName,
+ const QvField *field);
+
+ int getNumFields() const { return fields.getLength(); }
+
+ const QvName & getFieldName(int index) const;
+
+ QvField * getField(const QvNode *object,
+ int index) const;
+
+ void addEnumValue(const char *typeName,
+ const char *valName, int val);
+ void getEnumData(const char *typeName, int &num,
+ const int *&vals, const QvName *&names);
+
+ QvBool read(QvInput *in, QvNode *object,
+ QvBool errorOnUnknownField = TRUE) const;
+
+ QvBool read(QvInput *in, QvNode *object,
+ const QvName &fieldName,
+ QvBool &foundName) const;
+
+ QvBool readFieldTypes(QvInput *in, QvNode *object);
+
+ private:
+ QvPList fields;
+ QvPList enums;
+};
+
+#endif /* _QV_FIELD_DATA_ */