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 struct OSCTXT;
00035
00053 typedef struct OSRTScalarDListNode {
00054 enum {
00055 ScalarDList_undefined,
00056 ScalarDList_double,
00057 ScalarDList_float,
00058 ScalarDList_int32,
00059 ScalarDList_uint32,
00060 ScalarDList_int64,
00061 ScalarDList_uint64,
00062 } ident;
00064 union {
00065 OSDOUBLE dfltval;
00066 OSFLOAT fltval;
00067 OSINT32 i32val;
00068 OSUINT32 ui32val;
00069 #if !defined(_NO_INT64_SUPPORT)
00070 OSINT64 i64val;
00071 OSUINT64 ui64val;
00072 #endif
00073 } u;
00074
00075 struct OSRTScalarDListNode* next;
00076 struct OSRTScalarDListNode* prev;
00077 } OSRTScalarDListNode;
00078
00085 typedef struct OSRTScalarDList {
00086 OSUINT32 count;
00087 OSRTScalarDListNode* head;
00088 OSRTScalarDListNode* tail;
00089 } OSRTScalarDList;
00090
00091 #ifdef __cplusplus
00092 extern "C" {
00093 #endif
00094
00103 EXTERNRTX void rtxScalarDListInit (OSRTScalarDList* pList);
00104
00120 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendDouble
00121 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSDOUBLE value);
00122
00123 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendFloat
00124 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSFLOAT value);
00125
00126 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendInt32
00127 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSINT32 value);
00128
00129 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendUInt32
00130 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSUINT32 value);
00131
00132 #if !defined(_NO_INT64_SUPPORT)
00133 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendInt64
00134 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSINT64 value);
00135
00136 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendUInt64
00137 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSUINT64 value);
00138 #endif
00139
00155 EXTERNRTX OSRTScalarDListNode* rtxScalarDListAppendNode
00156 (OSRTScalarDList* pList, OSRTScalarDListNode* pListNode);
00157
00173 EXTERNRTX OSRTScalarDListNode* rtxScalarDListInsertNode
00174 (OSRTScalarDList* pList, OSUINT32 index, OSRTScalarDListNode* pListNode);
00175
00189 EXTERNRTX OSRTScalarDListNode*
00190 rtxScalarDListFindByIndex (const OSRTScalarDList* pList, OSUINT32 index);
00191
00201 EXTERNRTX void rtxScalarDListFreeNode
00202 (struct OSCTXT* pctxt, OSRTScalarDList* pList, OSRTScalarDListNode* node);
00203
00210 EXTERNRTX void rtxScalarDListRemove
00211 (OSRTScalarDList* pList, OSRTScalarDListNode* node);
00212
00220 EXTERNRTX void rtxScalarDListFreeNodes
00221 (struct OSCTXT* pctxt, OSRTScalarDList* pList);
00222
00223 #ifdef __cplusplus
00224 }
00225 #endif
00226
00227 #endif