]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/src/org/simantics/databoard/standardTypes.dbt
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / standardTypes.dbt
diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/standardTypes.dbt b/bundles/org.simantics.databoard/src/org/simantics/databoard/standardTypes.dbt
new file mode 100644 (file)
index 0000000..990b6aa
--- /dev/null
@@ -0,0 +1,235 @@
+\r
+type Limit = \r
+    | Nolimit \r
+    | Inclusive { value : Double } \r
+    | Exclusive { value : Double } \r
+    | InclusiveLong { value : Long } \r
+    | ExclusiveLong { value : Long }\r
+\r
+type Range = { lower : Limit, upper : Limit }\r
+\r
+type Component = { name : String, type : DataType }\r
+type DataTypeDefinition = { name : String, type : DataType }\r
+\r
+type DataType =\r
+      | BooleanType  {}\r
+      | ByteType     { unit : Optional(String), range : Optional(Range) }\r
+      | IntegerType  { unit : Optional(String), range : Optional(Range) }\r
+      | LongType     { unit : Optional(String), range : Optional(Range) }\r
+      | FloatType    { unit : Optional(String), range : Optional(Range) }\r
+      | DoubleType   { unit : Optional(String), range : Optional(Range) }\r
+      | StringType   { pattern : Optional(String), mimeType : Optional(String), length : Optional(String) }\r
+      | RecordType   referable { referable : Boolean, components : Component[] }\r
+      | ArrayType    { componentType : DataType, length : Optional(Range) }\r
+      | MapType      { keyType : DataType, valueType : DataType }\r
+      | OptionalType { componentType : DataType }\r
+      | UnionType    UnionType\r
+      | VariantType  {}\r
+\r
+type UnionType = { components : Component[] }\r
+\r
+type UUID = { mostSigBits : Long, leastSigBits : Long }\r
+type Void = {}\r
+type URI = String\r
+type LocalizedText = Map(String, String)\r
+\r
+type Interface = {\r
+       methodDefinitions : Map(MethodTypeDefinition, {})\r
+     }\r
+type InterfaceDefinition = {\r
+       name : String,\r
+       type : Interface\r
+     }\r
+type MethodType = {\r
+       requestType : DataType,\r
+      responseType : DataType,\r
+       errorType : UnionType\r
+     }\r
+type MethodTypeDefinition = {\r
+       name : String,\r
+       type : MethodType\r
+     }\r
+\r
+\r
+type Handshake = | Version0\r
+type Version0 = {\r
+       recvMsgLimit : Integer,\r
+       sendMsgLimit : Integer,\r
+       methods : MethodTypeDefinition[]\r
+     }\r
+type Message = | RequestHeader RequestHeader \r
+               | ResponseHeader ResponseHeader\r
+               | ExecutionError_ ExecutionError_\r
+               | Exception_ Exception_\r
+               | InvalidMethodError InvalidMethodError\r
+               | ResponseTooLarge ResponseTooLarge\r
+type RequestHeader = {\r
+       requestId : Integer,\r
+       methodId : Integer\r
+     }\r
+type ResponseHeader = {\r
+       requestId : Integer\r
+     }\r
+type ExecutionError_ = {\r
+       requestId : Integer\r
+     }\r
+type InvalidMethodError = {\r
+       requestId : Integer\r
+     }\r
+type Exception_ = {\r
+       requestId : Integer,         \r
+       message : String\r
+     }\r
+type ResponseTooLarge = {\r
+       requestId : Integer         \r
+     }\r
+\r
+type AccessorReference = | ArrayIndexReference     { childReference : Optional(AccessorReference), index : Integer }\r
+                         | KeyReference            { childReference : Optional(AccessorReference), key : Variant }\r
+                         | OptionalValueReference  { childReference : Optional(AccessorReference) }\r
+                         | FieldIndexReference     { childReference : Optional(AccessorReference), index : Integer }\r
+                         | FieldNameReference      { childReference : Optional(AccessorReference), fieldName : String }\r
+                         | TagReference            { childReference : Optional(AccessorReference)  }\r
+                         | TagIndexReference       { childReference : Optional(AccessorReference), tag : Integer  }\r
+                         | TagNameReference        { childReference : Optional(AccessorReference), tag : String }\r
+                         | VariantValueReference   { childReference : Optional(AccessorReference) }\r
+                         | LabelReference          { childReference : Optional(AccessorReference), label : String }\r
+\r
+type Event = | ArrayElementAdded     { reference : Optional( AccessorReference ), index : Integer, value : Optional( Variant ) }\r
+             | ArrayElementRemoved   { reference : Optional( AccessorReference ), index : Integer }\r
+             | MapEntryAdded         { reference : Optional( AccessorReference ), key : Variant, value : Optional( Variant ) }\r
+             | MapEntryRemoved       { reference : Optional( AccessorReference ), key : Variant }\r
+             | UnionValueAssigned    { reference : Optional( AccessorReference ), tag : Integer, newValue : Optional( Variant ) }\r
+             | OptionalValueAssigned { reference : Optional( AccessorReference ), newValue : Optional( Variant ) }\r
+             | OptionalValueRemoved  { reference : Optional( AccessorReference ) }\r
+             | ValueAssigned         { reference : Optional( AccessorReference ), newValue : Optional( Variant ) }\r
+             | InvalidatedEvent      { reference : Optional( AccessorReference ) }\r
\r
+type ChangeSet = { events : Event[] }\r
+\r
+type InterestSet = | BooleanInterestSet  { notification : Boolean, value : Boolean }\r
+                   | ByteInterestSet     { notification : Boolean, value : Boolean }\r
+                   | IntegerInterestSet  { notification : Boolean, value : Boolean }\r
+                   | LongInterestSet     { notification : Boolean, value : Boolean }\r
+                   | FloatInterestSet    { notification : Boolean, value : Boolean }\r
+                   | DoubleInterestSet   { notification : Boolean, value : Boolean }\r
+                   | StringInterestSet   { notification : Boolean, value : Boolean }\r
+                   | RecordInterestSet   { notification : Boolean, notifications : Boolean[], value : Boolean, values : Boolean[] }\r
+                   | ArrayInterestSet    { notification : Boolean, notifications : Integer[], value : Boolean, values : Integer[] }\r
+                   | MapInterestSet      { notification : Boolean, notifications : Variant[], value : Boolean, values : Variant[], componentInterest : InterestSet, componentInterests : Map( Variant, InterestSet ) }\r
+                   | OptionalInterestSet { notification : Boolean, value : Boolean, componentInterest : InterestSet }\r
+                   | UnionInterestSet    { notification : Boolean, value : Boolean, componentInterests : InterestSet[] }\r
+                   | VariantInterestSet  { notification : Boolean, value : Boolean, componentInterest : InterestSet, completeComponent : Boolean }\r
+\r
+type Datasource = {\r
+        nodes : Map(Variant, Node)\r
+     }\r
+type Node = {\r
+        id : Variant,\r
+        labels : LocalizedText,\r
+        children : Variant[],\r
+        value : Optional(Variant)\r
+     }\r
+\r
+type Instant = { \r
+         seconds : Long, \r
+         nanoSeconds : Integer(range=[0..999999999])\r
+     }\r
+\r
+type Duration = { \r
+         seconds : Long, \r
+         nanoSeconds : Integer(range=[0..999999999]) \r
+     }\r
+\r
+type LocalDate = { \r
+         year : Integer, \r
+         monthOfYear : Integer(range=[1..12]), \r
+         dayOfMonth : Integer(range=[1..31]) \r
+     }\r
+     \r
+type LocalTime = { \r
+         hourOfDay : Integer(range=[0..23]),\r
+         minuteOfHour : Integer(range=[0..59]),\r
+         secondOfMinute : Integer(range=[0..59]),\r
+         nanoOfSecond : Integer(range=[0..999999999])\r
+     }\r
+     \r
+type LocalDateTime = {\r
+         year : Integer, \r
+         monthOfYear : Integer(range=[1..12]), \r
+         dayOfMonth : Integer(range=[1..31]), \r
+         hourOfDay : Integer(range=[0..23]),\r
+         minuteOfHour : Integer(range=[0..59]),\r
+         secondOfMinute : Integer(range=[0..59]),\r
+         nanoOfSecond : Integer(range=[0..999999999])\r
+     }\r
+    \r
+type ZonedDateTime = {\r
+         date : LocalDate,\r
+         time : LocalTime,\r
+         zone : TimeZone\r
+     }\r
\r
+type TimeZone = { zoneId : String }\r
+\r
+// A result of a data capturing session\r
+type RecordingSession = {\r
+         // An optional Datasource URL\r
+         datasource : Optional( String ),\r
\r
+         // Events that occured in the data source during sampling, a map of Event Id to Event\r
+         events: Map( Integer, Event ),\r
\r
+         // A collection of events that are promoted to milestones, a map of Milestone Id to Event Id\r
+         milestones : Map( Integer, Integer ),\r
+         \r
+         // All records, a map of NodeId to Recording(T, V)\r
+         recordings : Map( Variant, Variant )\r
+     }\r
+      \r
+type SubscriptionParameters = {\r
+        nodeId : Variant,\r
+        deadband : Optional( Variant ),\r
+        interval : Optional( Variant )\r
+      }\r
+\r
+type SamplingConfiguration = {\r
+         // Capture events, if true events are captured\r
+         captureEvents : Boolean,\r
+         // Subscribed Variables\r
+         subscriptions : SubscriptionParameters[]\r
+      }\r
+      \r
+type Event = {\r
+        // Session unique identifier\r
+        id : Integer,\r
+\r
+        // Timevalue, a number type e.g. Double(unit="s"), or a date type (See #Time_Types)\r
+        time : Variant,\r
+\r
+        // Title\r
+        title : Optional(String), \r
+\r
+        // Message\r
+        message : String,\r
\r
+        // NodeId of the sender object, optional\r
+        source : Optional(Variant),\r
+\r
+        // Event Type: alarm, action, error, info, debug\r
+        type : String,\r
\r
+        // System Text, generated by the source system, eg. \94YD11D001 started\94\r
+        systemText : Optional(String), \r
+\r
+        // Comments\r
+        comments : Comment[],\r
+\r
+        // Other Metadata\r
+        metadata : Map(String, String) \r
+      }\r
+\r
+type Comment = {\r
+        user : Optional(String),\r
+        message : String\r
+      }\r