Titan



anytype


This special type is defined as a shorthand for the union of all known types in a TTCN-3 module. Known types include the following: built-in types, user-defined types, imported ASN.1 and other imported external types.

Related keywords:


anytype

 

TITAN specific restriction compared to the standard:

  •  anytype can only contain the simple types, the ones defined in the same module and the address type. Imported types are not included.

  •  The types included in the anytype of a module have to be declared by the user, using extension attributes.


Example 1:

module example {
type float MyFloat;
type charstring MyString;
type record MyRecord {
   integer i,
   float f
}
...

control {
   var anytype v_any;
   v_any.integer := 3;
   v_any.charstring := "hello";
   v_any.MyRecord := { i := 42, f := 0.5};
...
   v_any.integer := v_any.MyRecord.i - 2;
}
}
with {
extension "anytype integer, charstring, MyRecord" }

anytype is defined to contain 3 types: integer, charstring and the MyRecord type.
The type MyFloat will not be a part of the anytype.
3 is assigned to the integer part of v_any making it hold an integer value.
"hello" is assigned to the charstring part of v_any making it hold a charstring value.
A record is assigned to the MyRecord part of v_any making it hold a MyRecord value.
The MyRecord contents of v_any is read and after decreasing it with 2 it is assigned to the integer part of v_any.



BNF definition of anytype