rtxDynBitSet.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2008 by 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 _RTXDYNBITSET_H_
00029 #define _RTXDYNBITSET_H_
00030 
00031 #include "rtxsrc/rtxBitString.h"
00032 
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036 
00037 #define OSRTBITSETSEGSIZE 16    /* Segment size in bytes                */
00038 
00039 typedef struct {
00040    OSUINT16     nbytes;         /* Number of bytes in allocated array   */
00041    OSUINT16     maxbit;         /* Maximum bit number currently set     */
00042    OSUINT16     segsize;        /* Segment size for expansions          */
00043    OSUINT16     spare;          /* 32-bit word boundary padding         */
00044    OSOCTET*     data;           /* Dynamic array to hold bits           */
00045 } OSRTDynBitSet;
00046 
00058 EXTERNRT int rtxDynBitSetInit 
00059 (OSCTXT* pctxt, OSRTDynBitSet* pbitset, OSUINT16 segNBytes);
00060 
00067 EXTERNRT void rtxDynBitSetFree (OSCTXT* pctxt, OSRTDynBitSet* pbitset);
00068 
00078 EXTERNRT int rtxDynBitSetCopy 
00079 (OSCTXT* pctxt, const OSRTDynBitSet* pSrcBitSet, OSRTDynBitSet* pDestBitSet);
00080 
00091 EXTERNRT int rtxDynBitSetSetBit 
00092 (OSCTXT* pctxt, OSRTDynBitSet* pbitset, OSUINT32 index);
00093 
00105 EXTERNRT int rtxDynBitSetClearBit (OSRTDynBitSet* pbitset, OSUINT32 index);
00106 
00117 EXTERNRT OSBOOL rtxDynBitSetTestBit 
00118 (const OSRTDynBitSet* pbitset, OSUINT32 index);
00119 
00132 EXTERNRT int rtxDynBitSetSetBitToValue 
00133 (OSCTXT* pctxt, OSRTDynBitSet* pbitset, OSUINT32 index, OSBOOL value);
00134 
00148 EXTERNRT int rtxDynBitSetInsertBit 
00149 (OSCTXT* pctxt, OSRTDynBitSet* pbitset, OSUINT32 index, OSBOOL value);
00150 
00151 #ifdef _TRACE
00152 
00158 EXTERNRT void rtxDynBitSetPrint 
00159 (const OSRTDynBitSet* pbitset, const char* varname);
00160 
00161 #endif
00162 
00163 #ifdef __cplusplus
00164 }
00165 #endif
00166 
00167 #endif