diff options
author | Juergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com> | 2017-10-17 18:54:14 +0200 |
---|---|---|
committer | Juergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com> | 2017-10-17 18:54:14 +0200 |
commit | e97451f627a9cc7a5ac86cd60277a0ed87204513 (patch) | |
tree | 6b75188c0e7652a39537cdef61a60c60adfdd78b | |
parent | c14d6ccb1022227f889b7aab302ba7bd296a059c (diff) | |
download | qtivi-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.qface | 81 |
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; +} + + + |