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
static r_Type * get_any_type(const std::string &type_string)
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.
static r_Type * get_any_type(const char *type_string)
build type schema from string representation
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
virtual r_Type * clone() const =0
clone operation
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 void convertToLittleEndian(char *cells, r_Area noCells) const =0
converts array of cells from NT byte order to Unix byte order.
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)