OpenBarnyard
 
Loading...
Searching...
No Matches
TBitArray.h
Go to the documentation of this file.
1#pragma once
2
4
6{
7public:
8 // Constructors/destructor
9 constexpr TBitArray()
10 : m_pBuffer( TNULL ), m_uiInitialisedWith( 0 ), m_iSize( 0 )
11 {}
12
13 TBitArray( TINT a_iNumBits, TINT a_iInitialiseWith );
14
15 ~TBitArray();
16
17 // Allocates memory for the specified number of bits
18 void Create( TINT a_iNumBits, TINT a_iInitialiseWith );
19
20 // Frees the buffer
21 void Destroy();
22
23 // Resets all the bits to their initial state
24 void Reset();
25
26 // Sets a bit at a_iIndex to a_iValue
27 void SetBit( TINT a_iIndex, TINT a_iValue );
28
29 // Sets a bit at a_iIndex to 1
30 void SetBit( TINT a_iIndex );
31
32 // Toggles a bit at a_iIndex
33 void ToggleBit( TINT a_iIndex );
34
35 // Sets a bit at a_iIndex to 0
36 void ClearBit( TINT a_iIndex );
37
38 // Returns 1 if a bit at a_iIndex is set or zero if it's not set
39 TINT GetBit( TINT a_iIndex ) const;
40
41 // Returns index of the first set (1) bit
42 TINT FindFirstSetBit();
43
44 // Returns index of the first clear (0) bit
45 TINT FindFirstClearBit();
46
47 // Returns number of bytes allocated for the buffer
48 TINT GetNumAllocatedBytes() const;
49
50private:
51 TUINT32* m_pBuffer;
52 TINT m_iSize;
53 TUINT m_uiInitialisedWith;
54};
55
#define TOSHI_API
Definition Defines.h:41
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
unsigned int TUINT
Definition Typedefs.h:8
#define TNULL
Definition Typedefs.h:23
uint32_t TUINT32
Definition Typedefs.h:13
int TINT
Definition Typedefs.h:7
constexpr TBitArray()
Definition TBitArray.h:9