diff options
author | Mike Buland <eichlan@xagasoft.com> | 2008-10-01 16:46:32 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2008-10-01 16:46:32 +0000 |
commit | d872f7e07c5367f251cf5ebb70a03916251f5306 (patch) | |
tree | 2140986825705e4b6bf35eba8dd556be772888ff /src/nids.h | |
parent | 467c255511749f018c4572017c9e0e87275524ac (diff) | |
download | libbu++-d872f7e07c5367f251cf5ebb70a03916251f5306.tar.gz libbu++-d872f7e07c5367f251cf5ebb70a03916251f5306.tar.bz2 libbu++-d872f7e07c5367f251cf5ebb70a03916251f5306.tar.xz libbu++-d872f7e07c5367f251cf5ebb70a03916251f5306.zip |
Ok, NIDS is getting better and better, and I went ahead and cleaned up some
exception related code that's been annoying me. You should no longer have to
include any exception header explicitly for normal operations, every class that
has it's own exception to throw defines it in it's own headers.
This may break some code that uses libbu++, but it's an easy fix, just delete
the include for exceptions.h. Sometime soon I would also like to move from
Bu::ExceptionBase to Bu::Exception, but that will affect a lot more code than
this change did.
Diffstat (limited to 'src/nids.h')
-rw-r--r-- | src/nids.h | 34 |
1 files changed, 26 insertions, 8 deletions
@@ -3,12 +3,15 @@ | |||
3 | 3 | ||
4 | #include <stdint.h> | 4 | #include <stdint.h> |
5 | #include "bu/bitstring.h" | 5 | #include "bu/bitstring.h" |
6 | #include "bu/exceptionbase.h" | ||
6 | 7 | ||
7 | namespace Bu | 8 | namespace Bu |
8 | { | 9 | { |
9 | class Stream; | 10 | class Stream; |
10 | class NidsStream; | 11 | class NidsStream; |
11 | 12 | ||
13 | subExceptionDecl( NidsException ) | ||
14 | |||
12 | /** | 15 | /** |
13 | * Numerically Indexed Data Streams. This is a working name so I can | 16 | * Numerically Indexed Data Streams. This is a working name so I can |
14 | * actually get some code written instead of agonizing over the name. | 17 | * actually get some code written instead of agonizing over the name. |
@@ -24,6 +27,14 @@ namespace Bu | |||
24 | virtual ~Nids(); | 27 | virtual ~Nids(); |
25 | 28 | ||
26 | /** | 29 | /** |
30 | * Initialize this object based on the data already in the assosiated | ||
31 | * stream. This will be called automatically for you if you forget, | ||
32 | * but if you want to pre-initialize for some reason, just call this | ||
33 | * once before you actually start doing anything with your Nids. | ||
34 | */ | ||
35 | void initialize(); | ||
36 | |||
37 | /** | ||
27 | * Create a new Nids system in the assosiated stream. This should be | 38 | * Create a new Nids system in the assosiated stream. This should be |
28 | * used carefully, it will destroy all data already within the stream. | 39 | * used carefully, it will destroy all data already within the stream. |
29 | * More options will probably be added soon. | 40 | * More options will probably be added soon. |
@@ -46,14 +57,16 @@ namespace Bu | |||
46 | */ | 57 | */ |
47 | NidsStream openStream( int iID ); | 58 | NidsStream openStream( int iID ); |
48 | 59 | ||
60 | int getBlockSize(); | ||
61 | |||
49 | private: | 62 | private: |
50 | typedef struct Block | 63 | typedef struct Block |
51 | { | 64 | { |
52 | uint32_t iFirstBlock; | 65 | uint32_t uFirstBlock; |
53 | uint32_t iNextBlock; | 66 | uint32_t uNextBlock; |
54 | uint32_t iPrevBlock; | 67 | uint32_t uPrevBlock; |
55 | uint32_t iBytesUsed; | 68 | uint32_t uBytesUsed; |
56 | uint32_t iReserved; | 69 | uint32_t uReserved; |
57 | unsigned char pData[0]; | 70 | unsigned char pData[0]; |
58 | } Block; | 71 | } Block; |
59 | 72 | ||
@@ -62,9 +75,14 @@ namespace Bu | |||
62 | blockUnused = 0xFFFFFFFFUL | 75 | blockUnused = 0xFFFFFFFFUL |
63 | }; | 76 | }; |
64 | 77 | ||
65 | void extendStream( int iID, int iBlockCount=1 ); | 78 | uint32_t createBlock( uint32_t uFirstBlock, uint32_t uPrevBlock, |
66 | void getBlock( int iIndex, struct Nids::Block *pBlock ); | 79 | int iPreAllocate=1 ); |
67 | void setBlock( int iIndex, struct Nids::Block *pBlock ); | 80 | void getBlock( uint32_t uIndex, struct Nids::Block *pBlock ); |
81 | void setBlock( uint32_t uIndex, struct Nids::Block *pBlock ); | ||
82 | void updateStreamSize( uint32_t uIndex, uint32_t uSize ); | ||
83 | uint32_t getNextBlock( uint32_t uIndex, struct Nids::Block *pBlock ); | ||
84 | Block *newBlock(); | ||
85 | void deleteBlock( Block *pBlock ); | ||
68 | 86 | ||
69 | private: | 87 | private: |
70 | Bu::Stream &sStore; | 88 | Bu::Stream &sStore; |