xsi_bitarray.h
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__