diff options
Diffstat (limited to 'src/stable')
| -rw-r--r-- | src/stable/sio.cpp | 6 | ||||
| -rw-r--r-- | src/stable/sio.h | 7 | ||||
| -rw-r--r-- | src/stable/stdstream.cpp | 7 | ||||
| -rw-r--r-- | src/stable/stdstream.h | 12 |
4 files changed, 24 insertions, 8 deletions
diff --git a/src/stable/sio.cpp b/src/stable/sio.cpp index 66db152..8ecb4ad 100644 --- a/src/stable/sio.cpp +++ b/src/stable/sio.cpp | |||
| @@ -6,9 +6,13 @@ | |||
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | #include "bu/sio.h" | 8 | #include "bu/sio.h" |
| 9 | #include "bu/streamstack.h" | ||
| 10 | #include "bu/stdstream.h" | ||
| 9 | 11 | ||
| 10 | Bu::StdStream Bu::sioRaw; | 12 | Bu::StreamStack Bu::sioRaw( new Bu::StdStream() ); |
| 11 | Bu::Formatter Bu::sio( Bu::sioRaw ); | 13 | Bu::Formatter Bu::sio( Bu::sioRaw ); |
| 14 | Bu::StreamStack Bu::serrRaw( new Bu::StdStream( Bu::StdStream::StdError ) ); | ||
| 15 | Bu::Formatter Bu::serr( Bu::serrRaw ); | ||
| 12 | 16 | ||
| 13 | class PrintEndAction : public Bu::String::FormatProxyEndAction | 17 | class PrintEndAction : public Bu::String::FormatProxyEndAction |
| 14 | { | 18 | { |
diff --git a/src/stable/sio.h b/src/stable/sio.h index d9761b2..2d4a104 100644 --- a/src/stable/sio.h +++ b/src/stable/sio.h | |||
| @@ -8,13 +8,16 @@ | |||
| 8 | #ifndef BU_SIO_H | 8 | #ifndef BU_SIO_H |
| 9 | #define BU_SIO_H | 9 | #define BU_SIO_H |
| 10 | 10 | ||
| 11 | #include "bu/stdstream.h" | ||
| 12 | #include "bu/formatter.h" | 11 | #include "bu/formatter.h" |
| 13 | 12 | ||
| 14 | namespace Bu | 13 | namespace Bu |
| 15 | { | 14 | { |
| 16 | extern Bu::StdStream sioRaw; | 15 | class StreamStack; |
| 16 | |||
| 17 | extern Bu::StreamStack sioRaw; | ||
| 17 | extern Bu::Formatter sio; | 18 | extern Bu::Formatter sio; |
| 19 | extern Bu::StreamStack serrRaw; | ||
| 20 | extern Bu::Formatter serr; | ||
| 18 | 21 | ||
| 19 | Bu::String::FormatProxy print( Bu::Stream &s, const Bu::String &str ); | 22 | Bu::String::FormatProxy print( Bu::Stream &s, const Bu::String &str ); |
| 20 | Bu::String::FormatProxy print( const Bu::String &str ); | 23 | Bu::String::FormatProxy print( const Bu::String &str ); |
diff --git a/src/stable/stdstream.cpp b/src/stable/stdstream.cpp index 9bc22f2..25ad8d4 100644 --- a/src/stable/stdstream.cpp +++ b/src/stable/stdstream.cpp | |||
| @@ -8,7 +8,8 @@ | |||
| 8 | #include <stdio.h> | 8 | #include <stdio.h> |
| 9 | #include "bu/stdstream.h" | 9 | #include "bu/stdstream.h" |
| 10 | 10 | ||
| 11 | Bu::StdStream::StdStream() | 11 | Bu::StdStream::StdStream( OutMode eOut ) : |
| 12 | eOut( eOut ) | ||
| 12 | { | 13 | { |
| 13 | } | 14 | } |
| 14 | 15 | ||
| @@ -27,7 +28,7 @@ Bu::size Bu::StdStream::read( void *pBuf, Bu::size nBytes ) | |||
| 27 | 28 | ||
| 28 | Bu::size Bu::StdStream::write( const void *pBuf, Bu::size nBytes ) | 29 | Bu::size Bu::StdStream::write( const void *pBuf, Bu::size nBytes ) |
| 29 | { | 30 | { |
| 30 | return fwrite( pBuf, 1, nBytes, stdout ); | 31 | return fwrite( pBuf, 1, nBytes, eOut==StdOut?stdout:stderr ); |
| 31 | } | 32 | } |
| 32 | 33 | ||
| 33 | Bu::size Bu::StdStream::tell() | 34 | Bu::size Bu::StdStream::tell() |
| @@ -59,7 +60,7 @@ bool Bu::StdStream::isOpen() | |||
| 59 | 60 | ||
| 60 | void Bu::StdStream::flush() | 61 | void Bu::StdStream::flush() |
| 61 | { | 62 | { |
| 62 | fflush( stdout ); | 63 | fflush( eOut==StdOut?stdout:stderr ); |
| 63 | } | 64 | } |
| 64 | 65 | ||
| 65 | bool Bu::StdStream::canRead() | 66 | bool Bu::StdStream::canRead() |
diff --git a/src/stable/stdstream.h b/src/stable/stdstream.h index c3ab153..d71d95d 100644 --- a/src/stable/stdstream.h +++ b/src/stable/stdstream.h | |||
| @@ -19,7 +19,12 @@ namespace Bu | |||
| 19 | class StdStream : public Stream | 19 | class StdStream : public Stream |
| 20 | { | 20 | { |
| 21 | public: | 21 | public: |
| 22 | StdStream(); | 22 | enum OutMode |
| 23 | { | ||
| 24 | StdOut, | ||
| 25 | StdError | ||
| 26 | }; | ||
| 27 | StdStream( OutMode eOut=StdOut ); | ||
| 23 | virtual ~StdStream(); | 28 | virtual ~StdStream(); |
| 24 | 29 | ||
| 25 | virtual void close(); | 30 | virtual void close(); |
| @@ -43,7 +48,10 @@ namespace Bu | |||
| 43 | virtual void setSize( size iSize ); | 48 | virtual void setSize( size iSize ); |
| 44 | virtual size getSize() const; | 49 | virtual size getSize() const; |
| 45 | virtual size getBlockSize() const; | 50 | virtual size getBlockSize() const; |
| 46 | virtual Bu::String getLocation() const; | 51 | virtual Bu::String getLocation() const; |
| 52 | |||
| 53 | private: | ||
| 54 | OutMode eOut; | ||
| 47 | }; | 55 | }; |
| 48 | } | 56 | } |
| 49 | 57 | ||
