rtxScalarDList.h
Go to the documentation of this file.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 _RTXSCALARDLIST_H_
00029 #define _RTXSCALARDLIST_H_
00030
00031 #include "rtxsrc/osSysTypes.h"
00032 #include "rtxsrc/rtxExternDefs.h"
00033
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00038 struct OSCTXT;
00039
00057 typedef struct OSRTScalarDListNode {
00058 enum {
00059 ScalarDList_undefined,
00060 ScalarDList_double,
00061 ScalarDList_float,
00062 ScalarDList_int32,
00063 ScalarDList_uint32,
00064 ScalarDList_int64,
00065 ScalarDList_uint64
00066 } ident;
00068 union {
00069 OSDOUBLE dfltval;
00070 OSFLOAT fltval;
00071 OSINT32 i32val;
00072 OSUINT32 ui32val;
00073 #if !defined(_NO_INT64_SUPPORT)
00074 OSINT64 i64val;
00075 OSUINT64 ui64val;
00076 #endif
00077 } u;
00078
00079 struct OSRTScalarDListNode* next;
00080 struct OSRTScalarDListNode* prev;
00081 } OSRTScalarDListNode;
00082
00089 typedef struct OSRTScalarDList {
00090 OSUINT32 count;
00091 OSRTScalarDListNode* head;
00092 OSRTScalarDListNode* tail;
00093 } OSRTScalarDList;
00094
00103 EXTERNRT void rtxScalarDListInit (OSRTScalarDList* pList);
00104
00120 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendDouble
00121 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSDOUBLE value);
00122
00123 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendFloat
00124 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSFLOAT value);
00125
00126 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendInt32
00127 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSINT32 value);
00128
00129 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendUInt32
00130 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSUINT32 value);
00131
00132 #if !defined(_NO_INT64_SUPPORT)
00133 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendInt64
00134 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSINT64 value);
00135
00136 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendUInt64
00137 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSUINT64 value);
00138 #endif
00139
00155 EXTERNRT OSRTScalarDListNode* rtxScalarDListAppendNode
00156 (OSRTScalarDList* pList, OSRTScalarDListNode* pListNode);
00157
00173 EXTERNRT OSRTScalarDListNode* rtxScalarDListInsertNode
00174 (OSRTScalarDList* pList, OSUINT32 index, OSRTScalarDListNode* pListNode);
00175
00189 EXTERNRT OSRTScalarDListNode*
00190 rtxScalarDListFindByIndex (const OSRTScalarDList* pList, OSUINT32 index);
00191
00201 EXTERNRT void rtxScalarDListFreeNode
00202 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSRTScalarDListNode* node);
00203
00210 EXTERNRT void rtxScalarDListRemove
00211 (OSRTScalarDList* pList, OSRTScalarDListNode* node);
00212
00220 EXTERNRT void rtxScalarDListFreeNodes
00221 (struct OSCTXT* pctxt, OSRTScalarDList* pList);
00222
00223 #ifdef __cplusplus
00224 }
00225 #endif
00226
00229 #endif