Go to the documentation of this file.
2 # define _OME_TYPE_H "$Id: OMEtype.h 312 2020-03-21 21:25:35Z geoff $"
39 # define OME_SIMPLE_TYPE 1
40 # define OME_EXTENDED_TYPE 2
41 # define OME_REFERENCE_TYPE 3
54 #define OMEtypeClass(t) (_OMEtypeTable[(t) & 0x1f].typeClass)
55 #define OMEfundamentalType(t) (_OMEtypeTable[(t) & 0x1f].basicType)
68 # include <OMEtypeHdr3.genh>
69 # include <OMEtypeHdr4.genh>
71 uint32_t
operator+(
const uint32_t,
const OMEbaseType &);
72 uint32_t
operator+(
const float,
const OMEbaseType &);
73 uint32_t
operator+(
const OMEbaseType &,
const uint32_t);
74 uint32_t
operator-(
const uint32_t,
const OMEbaseType &);
75 uint32_t
operator-(
const float,
const OMEbaseType &);
76 uint32_t
operator-(
const OMEbaseType &,
const uint32_t);
77 uint32_t
operator*(
const uint32_t,
const OMEbaseType &);
78 uint32_t
operator*(
const float,
const OMEbaseType &);
79 uint32_t
operator*(
const OMEbaseType &,
const uint32_t);
80 uint32_t
operator/(
const uint32_t,
const OMEbaseType &);
81 uint32_t
operator/(
const float,
const OMEbaseType &);
82 uint32_t
operator/(
const OMEbaseType &,
const uint32_t);
84 uint32_t
operator%(
const OMEbaseType &,
const uint32_t);
86 uint32_t
operator&(
const uint32_t,
const OMEbaseType &);
87 uint32_t
operator&(
const OMEbaseType &,
const uint32_t);
88 uint32_t
operator|(
const uint32_t,
const OMEbaseType &);
89 uint32_t
operator|(
const OMEbaseType &,
const uint32_t);
90 uint32_t
operator^(
const uint32_t,
const OMEbaseType &);
91 uint32_t
operator^(
const OMEbaseType &,
const uint32_t);
94 bool operator==(
const int32_t,
const OMEbaseType &);
95 bool operator==(
const uint32_t,
const OMEbaseType &);
96 bool operator!=(
const int32_t,
const OMEbaseType &);
97 bool operator!=(
const uint32_t,
const OMEbaseType &);
98 bool operator<=(
const int32_t,
const OMEbaseType &);
99 bool operator<=(
const uint32_t,
const OMEbaseType &);
100 bool operator>=(
const int32_t,
const OMEbaseType &);
101 bool operator>=(
const uint32_t,
const OMEbaseType &);
102 bool operator<(
const int32_t,
const OMEbaseType &);
103 bool operator<(
const uint32_t,
const OMEbaseType &);
104 bool operator>(
const int32_t,
const OMEbaseType &);
105 bool operator>(
const uint32_t,
const OMEbaseType &);
110 const char *delimeterList =
nullptr,
const int convertFlag = 0);
113 const char *source,
const int srcLen,
114 const char *delimeterList =
nullptr,
const int convertFlag = 0,
118 const uint_fast16_t forceBase = 10,
119 const bool discard =
false);
121 # define OME_FLAG_SORT_ASCENDING 0
122 # define OME_FLAG_SORT_DESCENDING 1
123 # define OME_FLAG_SORT_BY_KEY 2
124 # define OME_FLAG_SORT_CASE_INSENSITIVE 4
#define OME_FLAG_SORT_ASCENDING
Sort ascending.
Definition: OMEtype.h:121
OME fundamental data type implementation.
char typeName[17]
Definition: OMEtype.h:48
#define POWER_OF_2_TYPE_TABLE_SIZE
Definition: OMEtype.cpp:38
@ OME_NLM
Definition: OMEmanifests.h:90
bool operator!=(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:5508
int OMEconvertRFC1123date(OMEtype &result, const OMEtype &timeString)
Convert a text string in RFC 1123 format into an OME absolute time reference.
Definition: OMEtime.cpp:342
@ OME_FLOAT
Definition: OMEmanifests.h:82
void initializeAsType(const enum OMEtypes_t t)
The fundamental tagged data type used through the FARGOS/VISTA infrastructure.
Definition: OMEtype.cpp:95
OME stream output functions.
uint8_t typeClass
Definition: OMEtype.h:46
@ OME_POINTER
Definition: OMEmanifests.h:92
#define EXTENDED_IF_32BIT
Definition: OMEtype.cpp:41
OMEtype operator/(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:40694
OME object identifier implementation.
@ OME_UINT16
Definition: OMEmanifests.h:98
OME string implementation.
#define _OME_MANIFESTS_H
Definition: tmp.o.cpp:968
Implements associative array of OMEtype elements.
Definition: OMEassoc.h:112
Implements text and binary string storage.
Definition: OMEstring.h:305
#define OME_REFERENCE_TYPE
A complex, reference counted type.
Definition: OMEtype.h:41
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
@ OME_DOUBLE
Definition: OMEmanifests.h:83
bool operator<(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:10983
char enumName[12]
Definition: OMEtype.h:49
@ OME_UINT32
Definition: OMEmanifests.h:96
class OMEstring * s
Definition: OMEbaseType.h:299
#define OMEtypeClass(t)
Definition: OMEtype.h:54
#define OME_EXTENDED_TYPE
An extended native type.
Definition: OMEtype.h:40
OME native language message implementation.
OME fixed point number implementation.
OMEtype operator|(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:43769
#define OME_SIMPLE_TYPE
A simple native type.
Definition: OMEtype.h:39
OMEtype operator&(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:42937
int OMEiso8601Date(OMEtype &result, const OMEtype &argData)
Format an OME absolute time reference as a date and time in ISO 8601 format.
Definition: OMEtime.cpp:273
const _OMEtypeDescription _OMEtypeTable[POWER_OF_2_TYPE_TABLE_SIZE]
Definition: OMEtype.cpp:48
int makeUnique(OMEthread *thread, OMEtype &result, const OMEtype &arg)
Definition: OILdebug.cpp:357
Public interface to an OME Native Language Message.
Definition: OMEnlm.h:98
const char srcID[]
Definition: catSym.c:17
@ OME_STRING
Definition: OMEmanifests.h:85
Internal structure to describe OME fundamental types.
Definition: OMEtype.h:45
@ OME_INT
Definition: OMEmanifests.h:80
int OMEconvertLocalRelativeTimeToAbsolute(OMEtype &result, uint32_t tArg, int asGMT)
Convert a local relative time to an OME absolute time reference.
Definition: OMEtime.cpp:89
Implements an ordered list of OMEtype elements.
Definition: OMEset.h:64
#define _OME_TYPE_H
Definition: OMEtype.h:2
@ OME_NIL
Definition: OMEmanifests.h:78
OME_FAST_CALL int stringToArrayOfTokens(OMEtype &result, const OMEstring &source, const char *delimeterList=nullptr, const int convertFlag=0)
Tokenizes a string and saves the parsed tokens as individual elements of an array.
Definition: utils.cpp:139
@ OME_OID
Definition: OMEmanifests.h:84
OMEtypes_t
Definition: OMEmanifests.h:77
@ OME_UINT64
Definition: OMEmanifests.h:97
OME associative array implementation.
OME fundamental type implementation.
uint32_t OMEconvertAbsoluteToLocalRelativeTime(const OMEtype &tData)
Convert an OME absolute time reference to a local relative time.
Definition: OMEtime.cpp:152
OME_FAST_CALL void OMEconvertString(OMEtype &result, OMEstring *source, const uint_fast16_t forceBase=10, const bool discard=false)
Converts text strings into numeric values.
Definition: utils.cpp:24
const char srcID[] OME_USED
Definition: tick_time.cpp:24
#define TIMEZONE_NAME(ptr)
Definition: OMEtime.cpp:25
OMEtype operator+(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:33691
OMEtype operator-(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:36699
OME_FAST_CALL int subscriptsInOrder(OMEtype &result, const OMEtype &list, uint_fast8_t descending=OME_FLAG_SORT_ASCENDING)
Examines an array (either sparse or associative) and returns a list of subscripts that allow the elem...
Definition: utils.cpp:333
@ OME_SET
Definition: OMEmanifests.h:89
bool operator<=(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:13657
OME constants and typedefs.
Public interface to OME fixed-point type.
Definition: OMEfixed.h:85
class OMEtype * OMEbaseTypeP
Definition: OMEtype.h:57
@ OME_UINT8
Definition: OMEmanifests.h:99
#define OME_FAST_CALL
Definition: compiler_hints.h:468
OME sparse array implementation.
@ OME_FIXED
Definition: OMEmanifests.h:91
int OMErfc1123Date(OMEtype &result, const OMEtype &argData)
Format an OME absolute time reference as a data and time in RFC 1123 format.
Definition: OMEtime.cpp:218
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
Public interface to an OME Object Identifier.
Definition: OMEoid.h:196
@ OME_ANY
Definition: OMEmanifests.h:93
OMEtype operator*(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:39283
uint32_t type
Definition: OMEbaseType.h:304
bool operator>=(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:19005
const class OMEtype & READ_ONLY_OMEtype
A convenience typedef for performing read-only access to sparse and associative arrays....
Definition: OMEtype.h:58
uint8_t basicType
Definition: OMEtype.h:47
#define LOCALtime(arg)
Definition: OMEtime.cpp:15
int OMEtimeDifference(const OMEtype &time1, const OMEtype &time2)
Compute difference between two OME absolute time references.
Definition: OMEtime.cpp:529
Storage record for large-sized elements on 32-bit hardware.
Definition: OMEbaseType.h:28
@ OME_ARRAY
Definition: OMEmanifests.h:86
#define GMT_OFFSET(ptr)
Definition: OMEtime.cpp:24
bool operator>(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:16331
class OMEassoc * assoc
Definition: OMEbaseType.h:296
@ OME_CHARSET_UNDEFINED
Definition: OMEstring.h:24
void OMEbadTypeOp()
Definition: OMEtype.cpp:31
OMEtype operator%(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:42105
OMEtype operator^(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:44601
int OMEabortOnError
If non-zero, abort() called on type error.
Definition: OMEtype_operators.cpp:9
@ OME_ASSOC
Definition: OMEmanifests.h:87
bool operator==(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:33
@ OME_INT32
Definition: OMEmanifests.h:79
@ OME_INT64
Definition: OMEmanifests.h:81