Home > Support > Documentation

rtxScalarDList.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003-2007 Objective Systems, Inc.
00003  *
00004  * This software is furnished under a license and may be used and copied
00005  * only in accordance with the terms of such license and with the
00006  * inclusion of the above copyright notice. This software or any other
00007  * copies thereof may not be provided or otherwise made available to any
00008  * other person. No title to and ownership of the software is hereby
00009  * transferred.
00010  *
00011  * The information in this software is subject to change without notice
00012  * and should not be construed as a commitment by Objective Systems, Inc.
00013  *
00014  * PROPRIETARY NOTICE
00015  *
00016  * This software is an unpublished work subject to a confidentiality agreement
00017  * and is protected by copyright and trade secret law.  Unauthorized copying,
00018  * redistribution or other use of this work is prohibited.
00019  *
00020  * The above notice of copyright on this source code product does not indicate
00021  * any actual or intended publication of such source code.
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