summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com>2017-10-17 18:54:14 +0200
committerJuergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com>2017-10-17 18:54:14 +0200
commite97451f627a9cc7a5ac86cd60277a0ed87204513 (patch)
tree6b75188c0e7652a39537cdef61a60c60adfdd78b
parentc14d6ccb1022227f889b7aab302ba7bd296a059c (diff)
downloadqtivi-qface-e97451f627a9cc7a5ac86cd60277a0ed87204513.tar.gz
Added a meta-qface interface for later generating domain models for
different languages based on the JSON output.
-rw-r--r--interfaces/org.qface.meta.qface81
1 files changed, 81 insertions, 0 deletions
diff --git a/interfaces/org.qface.meta.qface b/interfaces/org.qface.meta.qface
new file mode 100644
index 0000000..ae496fb
--- /dev/null
+++ b/interfaces/org.qface.meta.qface
@@ -0,0 +1,81 @@
+ module org.qface.meta 1.0
+
+interface MetaBuilder {
+ ESystem system;
+ void load(string path);
+ void store(string path);
+}
+
+struct EType {
+ bool isComplex
+ bool isPrimitive;
+ bool isString;
+ bool isBool;
+ bool isInt;
+ bool isReal;
+ bool isList;
+ bool isModel;
+ string name;
+}
+
+struct ESystem {
+ list<EModule> modules;
+}
+
+struct EModule {
+ list<EInterface> interfaces;
+ list<EStruct> structs;
+ list<EEnum> enums;
+ list<EFlag> flags;
+}
+
+struct EInterface {
+ string name;
+ list<EProperty> properties;
+ list<EOperation> operations;
+ list<ESignal> signals;
+}
+
+struct EProperty {
+ string name
+ EType type
+}
+
+struct EOperation {
+ string name;
+ EType type;
+ list<EParameter> parameters;
+}
+
+struct ESignal {
+ string name;
+ list<EParameter> parameters;
+}
+
+struct EStruct {
+ string name;
+ list<EField> fields;
+}
+
+struct EField {
+ string name;
+ EType type;
+}
+
+struct Enum {
+ string name
+ model<EEnumMember> members;
+}
+
+struct EEnumMember {
+ int value;
+ string name;
+}
+
+struct EFlag {
+ string name
+ model<EEnumMember> members;
+}
+
+
+