From 41c9581b48f055f6559335ffc0316f27ed1b3657 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Mon, 12 Apr 2010 07:37:09 +0000 Subject: Myriad is getting pretty close, just have to finish the writing code and probably tweak the header init. --- src/myriad.h | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) (limited to 'src/myriad.h') diff --git a/src/myriad.h b/src/myriad.h index f6d5e51..0344057 100644 --- a/src/myriad.h +++ b/src/myriad.h @@ -30,7 +30,7 @@ namespace Bu * Header format is as follows: * * MMMMvBssssSSSS* - * M = Magic number + * M = Magic number (FFC399BD) * v = version number * B = Bits per int * s = Blocksize in bytes @@ -95,12 +95,12 @@ namespace Bu /** * Delete a stream that's already within the Myriad. */ - void deleteStream( int iID ); + void deleteStream( int iId ); /** * Return a new Stream object assosiated with the given stream ID. */ - MyriadStream openStream( int iID ); + MyriadStream openStream( int iId ); int getBlockSize(); int getNumBlocks(); @@ -118,25 +118,42 @@ namespace Bu { blockUnused = 0xFFFFFFFFUL }; + + typedef Bu::Array BlockArray; + class Stream + { + public: + int iId; + int iSize; + BlockArray aBlocks; + }; + typedef Bu::Array StreamArray; + + class Block + { + public: + char *pData; + bool bChanged; + int iBlockIndex; + }; void updateHeader(); int findEmptyBlock(); + /** + *@todo Change this to use a binary search, it's nicer. + */ + Stream *findStream( int iId ); + + Block *getBlock( int iBlock ); + void releaseBlock( Block *pBlock ); + private: Bu::Stream &sStore; int iBlockSize; int iBlocks; int iUsed; Bu::BitString bsBlockUsed; - typedef Bu::Array BlockArray; - class Stream - { - public: - int iId; - int iSize; - BlockArray aBlocks; - }; - typedef Bu::Array StreamArray; StreamArray aStreams; }; }; -- cgit v1.2.3