00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028 #ifndef _RTXGENVALUETYPE_H_
00029 #define _RTXGENVALUETYPE_H_
00030
00031 #include "rtxsrc/rtxContext.h"
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00037
00038 typedef enum {
00039 OSRTDataType_UnsignedInt,
00040 OSRTDataType_SignedInt,
00041 OSRTDataType_ByteArray,
00042 OSRTDataType_CharStr,
00043 OSRTDataType_Array,
00044 OSRTDataType_Map,
00045 OSRTDataType_Bool,
00046 OSRTDataType_Float
00047 } OSRTDataType;
00048
00049 typedef struct _OSRTGenPtrArray {
00050 OSSIZE nitems;
00051 struct _OSRTGenValue** values;
00052 } OSRTGenPtrArray;
00053
00054 typedef struct _OSRTGenKeyValuePair {
00055 struct _OSRTGenValue* key;
00056 struct _OSRTGenValue* value;
00057 } OSRTGenKeyValuePair;
00058
00059 typedef struct _OSRTGenValueMap {
00060 OSSIZE nitems;
00061 OSRTGenKeyValuePair* values;
00062 } OSRTGenValueMap;
00063
00064 typedef struct _OSRTGenValue {
00065 OSRTDataType t;
00066 union {
00067
00068 #ifndef _NO_INT64_SUPPORT
00069 OSUINT64 uintval;
00070 OSINT64 intval;
00071 #else
00072 OSUINT32 uintval;
00073 OSINT32 intval;
00074 #endif
00075
00076 OSDynOctStr64 bytestr;
00077
00078
00079 const char* utf8str;
00080
00081
00082 OSRTGenPtrArray array;
00083
00084
00085 OSRTGenValueMap map;
00086
00087
00088 OSBOOL boolval;
00089
00090
00091 OSDOUBLE fltval;
00092 } u;
00093 } OSRTGenValue;
00094
00107 EXTERNRT int rtxGenValueCompare
00108 (OSCTXT* pctxt, const OSRTGenValue* pvalue1, const OSRTGenValue* pvalue2);
00109
00117 EXTERNRT const char* rtxGenValueGetIdent (OSRTDataType id);
00118
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122
00123 #endif