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__