diff options
Diffstat (limited to 'src/nullstream.h')
-rw-r--r-- | src/nullstream.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/nullstream.h b/src/nullstream.h index 5440af6..1537ffb 100644 --- a/src/nullstream.h +++ b/src/nullstream.h | |||
@@ -5,6 +5,18 @@ | |||
5 | 5 | ||
6 | namespace Bu | 6 | namespace Bu |
7 | { | 7 | { |
8 | /** | ||
9 | * Works a lot like /dev/null on *nix style systems. This class allows | ||
10 | * infinite reading and writing. All operatorns "succeed" even if they | ||
11 | * don't seem to do anything. This is great for testing writing code or | ||
12 | * doing dry runs. When reading, it will produce NULL bytes, so any | ||
13 | * application that would like the ability to produce null streams as a | ||
14 | * snap-in replacement for any other Bu::Stream, this is the right option. | ||
15 | * | ||
16 | * As an added feature, the NullStream will track how many bytes it was | ||
17 | * asked to read and write, allowing you to use it to determine how many | ||
18 | * bytes a write opretion would use without actually writing anything. | ||
19 | */ | ||
8 | class NullStream : public Bu::Stream | 20 | class NullStream : public Bu::Stream |
9 | { | 21 | { |
10 | public: | 22 | public: |
@@ -31,6 +43,13 @@ namespace Bu | |||
31 | virtual bool isBlocking(); | 43 | virtual bool isBlocking(); |
32 | virtual void setBlocking( bool bBlocking=true ); | 44 | virtual void setBlocking( bool bBlocking=true ); |
33 | virtual void setSize( long iSize ); | 45 | virtual void setSize( long iSize ); |
46 | |||
47 | size_t getBytesRead() { return sRead; } | ||
48 | size_t getByetsWritten() { return sWrote; } | ||
49 | |||
50 | private: | ||
51 | size_t sRead; | ||
52 | size_t sWrote; | ||
34 | }; | 53 | }; |
35 | }; | 54 | }; |
36 | 55 | ||