--- a/src/fsmblockmap.h Sun Aug 05 00:38:26 2007 +0000
+++ b/src/fsmblockmap.h Sun Aug 05 00:39:42 2007 +0000
@@ -1,4 +1,4 @@
-/* $Id:$ */
+/* $Id$ */
/** @file FSMblockmap.h Definition of FSMblockmap class for use in state machines*/
@@ -7,7 +7,7 @@
#include "stdafx.h"
-uint64 inline GetBlockAsBits ( byte blocknumber )
+uint64 inline GetBlockAsBits(byte blocknumber)
{
if (blocknumber == 0) return 0ULL;
if (blocknumber > 63) blocknumber -= 64;
@@ -21,13 +21,13 @@
*/
struct FSMblockmap {
public:
- void inline ResetAll(void)
+ void inline ResetAll()
{
block_lower = 0x0000000000000000;
block_upper = 0x0000000000000000;
};
- void Initialise(byte *blocklist, int num_bytes)
+ void Initialise(const byte *blocklist, int num_bytes)
{
ResetAll();
for (int i = 0; i < num_bytes; i++)
@@ -40,30 +40,31 @@
}
}
- uint64 inline GetLower(void)
+ uint64 inline GetLower() const
{
return block_lower;
}
- uint64 inline GetUpper(void)
+ uint64 inline GetUpper() const
{
return block_upper;
}
- void inline ReserveBlocks(FSMblockmap *blockmap)
+
+ void inline ReserveBlocks(const FSMblockmap *blockmap)
{
/* OR with blockmap to reserve blocks */
block_lower |= blockmap->GetLower();
block_upper |= blockmap->GetUpper();
}
- void inline ReleaseBlocks(FSMblockmap *blockmap)
+ void inline ReleaseBlocks(const FSMblockmap *blockmap)
{
/* AND with ones-complement to clear set bits in blockmap from block_lower and block_upper */
block_lower &= ~blockmap->GetLower();
block_upper &= ~blockmap->GetUpper();
}
- bool inline BlocksAreFree(FSMblockmap *blockmap)
+ bool inline BlocksAreFree(const FSMblockmap *blockmap) const
{
uint64 test_lower = blockmap->GetLower();
uint64 test_upper = blockmap->GetUpper();
@@ -74,7 +75,7 @@
return true;
}
- bool inline HasBlocks(FSMblockmap *blockmap)
+ bool inline HasBlocks(const FSMblockmap *blockmap) const
{
uint64 test_lower = blockmap->GetLower();
uint64 test_upper = blockmap->GetUpper();
@@ -85,11 +86,11 @@
return true;
}
- bool inline HasBlock(byte blocknumber)
+ bool inline HasBlock(byte blocknumber) const
{
- FSMblockmap *test_blockmap = new FSMblockmap;
- test_blockmap->Initialise(&blocknumber, 1);
- return HasBlocks(test_blockmap);
+ FSMblockmap test_blockmap;
+ test_blockmap.Initialise(&blocknumber, 1);
+ return HasBlocks(&test_blockmap);
}
//bool inline HasBlock(byte blocknumber)
@@ -99,16 +100,18 @@
// return ((block_upper & test_block) == test_block);
//}
- bool inline IsNotZero(void)
+ bool inline IsNotZero(void) const
{
return ((block_lower != 0) || (block_upper != 0));
}
+ void PrintBlock(bool newline = true) const;
+
private:
uint64 block_lower;
uint64 block_upper;
};
-FSMblockmap* SetFSMSingleBlock(byte *blocklist);
+FSMblockmap* SetFSMSingleBlock(const byte *blocklist);
#endif /* FSMBLOCKMAP_H */