83 explicit r_Type(
const char *newTypeName);
176 static DLTOKEN getNextToken(
char *&pos,
char *&identifier);
180 static r_Type *getType(
char *&pos);
184 static r_Base_Type *getBaseType(
char *&pos,
int offset = 0);
217#define CODE(...) __VA_ARGS__
218#define MAKE_SWITCH_TYPEID(cellType, T, code, codeDefault) \
221 case r_Type::r_Type_Id::ULONG: \
226 case r_Type::r_Type_Id::USHORT: \
228 using T = r_UShort; \
231 case r_Type::r_Type_Id::CHAR: \
236 case r_Type::r_Type_Id::BOOL: \
238 using T = r_Boolean; \
241 case r_Type::r_Type_Id::LONG: \
246 case r_Type::r_Type_Id::SHORT: \
251 case r_Type::r_Type_Id::OCTET: \
256 case r_Type::r_Type_Id::DOUBLE: \
258 using T = r_Double; \
261 case r_Type::r_Type_Id::FLOAT: \
This class is the superclass of the types r_Structure_Type and r_Primitive_Type in the representation...
Definition basetype.hh:40
This class represents the collection type in the ODMG conformant representation of the RasDaMan type ...
Definition collectiontype.hh:39
This class represents the marray type in the ODMG conformant representation of the RasDaMan type syst...
Definition marraytype.hh:41
This class represents the multidimensional interval type in the ODMG conformant representation of the...
Definition mintervaltype.hh:41
This class represents the oid type in the ODMG conformant representation of the RasDaMan type system.
Definition oidtype.hh:40
This class represents the point type in the ODMG conformant representation of the RasDaMan type syste...
Definition pointtype.hh:40
This class represents all primitive types in the ODMG conformant representation of the RasDaMan type ...
Definition primitivetype.hh:42
This class represents the sinterval type in the ODMG conformant representation of the RasDaMan type s...
Definition sintervaltype.hh:39
This class represents a type for simple strings.
Definition stringtype.hh:39
This class represents all user defined structured types in the ODMG conformant representation of the ...
Definition structuretype.hh:41
This class the superclass for all types in the ODMG conformant representation of the RasDaMan type sy...
Definition type.hh:51
virtual bool isCollectionType() const
check, if type is a Colelction type
r_Type()=default
default constructor.
virtual bool isOidType() const
check, if type is a oid
virtual bool isPointType() const
check, if type is a Point
virtual void convertToBigEndian(char *cells, r_Area noCells) const =0
converts array of cells from Unix byte order to NT byte order.
virtual bool isStructType() const
check, if type is primitive or structured.
virtual bool isMarrayType() const
check, if type is a marray type.
virtual bool isBaseType() const
check, if type is a base type ( primitive type or structure type).
virtual bool isSintervalType() const
check, if type is a Sinterval
virtual bool isMintervalType() const
check, if type is a Minterval
virtual ~r_Type()=default
destructor.
virtual bool isStringType() const
check, if type is a string
virtual bool isPrimitiveType() const
check, if type is a primitive type.
r_Type_Id
typedef for the enum specifying a primitive type, structure type, marray type, interval type,...
Definition type.hh:56
@ OCTET
Definition type.hh:62
@ STRUCTURETYPE
Definition type.hh:70
@ COMPLEXTYPE1
Definition type.hh:66
@ LONG
Definition type.hh:60
@ OIDTYPE
Definition type.hh:76
@ COMPLEXTYPE2
Definition type.hh:67
@ COLLECTIONTYPE
Definition type.hh:72
@ FLOAT
Definition type.hh:64
@ UNKNOWNTYPE
Definition type.hh:78
@ STRINGTYPE
Definition type.hh:77
@ CINT32
Definition type.hh:69
@ ULONG
Definition type.hh:57
@ CHAR
Definition type.hh:65
@ SINTERVALTYPE
Definition type.hh:73
@ BOOL
Definition type.hh:59
@ CINT16
Definition type.hh:68
@ MARRAYTYPE
Definition type.hh:71
@ POINTTYPE
Definition type.hh:75
@ MINTERVALTYPE
Definition type.hh:74
@ DOUBLE
Definition type.hh:63
@ SHORT
Definition type.hh:61
@ USHORT
Definition type.hh:58
r_Type(const char *newTypeName)
constructor getting name of type.
virtual r_Type::r_Type_Id type_id() const =0
retrieve id of the type.
virtual r_Type * clone() const =0
clone operation
virtual void convertToLittleEndian(char *cells, r_Area noCells) const =0
converts array of cells from NT byte order to Unix byte order.
static r_Type * get_any_type(const std::string &type_string)
static r_Type * get_any_type(const char *type_string)
build type schema from string representation
virtual bool isComplexType() const
check, if type is a base type ( primitive type or structure type).
std::uint64_t r_Area
number of cells in an mdd object or tile.
Definition mddtypes.hh:49
std::ostream & operator<<(std::ostream &s, r_Type::r_Type_Id t)