Go to the documentation of this file.00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSIBITARRAY_H__
00018 #define __XSIBITARRAY_H__
00019
00020 #include "sicppsdk.h"
00021
00022 namespace XSI {
00023
00024 class CBoolArray;
00025 class CStatus;
00026
00027
00055
00056
00057 class SICPPSDKDECL CBitArray
00058 {
00059 public:
00061 ~CBitArray();
00062
00067 CBitArray( LONG in_size = 0 );
00068
00072 CBitArray(const CBitArray& in_str);
00073
00077 CBitArray(const CBoolArray& in_boolArray);
00078
00084 CBitArray& operator=(const CBitArray& in_array) ;
00085
00090 bool operator==(const CBitArray& in_array) const;
00091
00096 bool operator!=(const CBitArray& in_array) const;
00097
00104 const bool operator[]( LONG in_pos ) const;
00105
00110 bool operator [] (LONG in_pos);
00111
00116 CStatus Add( const bool& in_bVal );
00117
00124 CStatus Set(LONG in_pos, bool in_bVal);
00125
00130 CStatus SetAll(bool in_bVal);
00131
00139 CStatus Resize( LONG in_size, bool in_bVal = false );
00140
00144 CStatus Clear();
00145
00149 LONG GetCount() const ;
00150
00154 LONG GetTrueCount() const ;
00155
00159 bool IsAny() const ;
00160
00169 CBitArray& And( const CBitArray& in_array );
00170
00179 CBitArray& Or( const CBitArray& in_array );
00180
00189 CBitArray& XOr( const CBitArray& in_array );
00190
00194 CBitArray& FlipAll();
00195
00200 bool Flip(LONG in_pos);
00201
00208 LONG GetIterator( LONG in_pos = 0 ) const;
00209
00247 bool GetNextTrueBit( LONG& in_Iterator) const;
00248
00287 bool GetNextFalseBit( LONG& in_Iterator) const;
00288
00289 private:
00290 void * m_pImpl ;
00291 };
00292
00293 };
00294
00295 #endif // __XSIBITARRAY_H__