Aron (ArmarX Object Notation) is the ArmarX implementation of variants which can be transferred over the network via ZeroC Ice. Further, Aron is the data representation used in the ArmarX Memory System [ArMem](ArMem/ArMem). We distinguish between:
- type specification vs. data information
- data transfer object (in the following called Aron dto) vs. its corresponding c++ wrapper (in the following called Aron object)
- data transfer object (in the following called Aron DTO) vs. its corresponding c++ wrapper (in the following called Aron object). The DTO specificatio is done in ice so that every Aron object can be transferred via ice.
## Aron Type specification
An Aron type specification defines the static type for an Aron data dto or an Aron data object. It can only consist of the following types and information (AronVariant means any Type):
An Aron type specification defines the static type for an Aron data DTO or an Aron data object. It can only consist of the following types and information (AronVariant means any Type):
```cpp
Object{// dto called AronObject
Object{// dto called armarx::aron::type::dto::AronObject
stringname;
AronVariantextends;
map<string,AronVariant>members;
map<string,AronVariant>memberTypes;
}
Dict{
Dict{// dto called armarx::aron::type::dto::Dict
AronVariantacceptedType;
}
List{// dto called armarx::aron::type::dto::List
AronVariantacceptedType;
}
Pair{
AronVariantacceptedType1;
AronVariantacceptedType2;
}
Tuple{
vector<AronVariant>acceptedTypes;
}
IntEnum{
stringname;
map<string,int>acceptedValues;
}
NDArray{
intndim;
typetype;// in [uint8, int8, uint16, int16, uint32, int32, float32, float64]