00001 #ifndef CLASSLIB_BUFFER_OUTPUT_STREAM_H 00002 # define CLASSLIB_BUFFER_OUTPUT_STREAM_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "classlib/iotools/FilterOutputStream.h" 00007 00008 namespace lat { 00009 //<<<<<< PUBLIC DEFINES >>>>>> 00010 //<<<<<< PUBLIC CONSTANTS >>>>>> 00011 //<<<<<< PUBLIC TYPES >>>>>> 00012 //<<<<<< PUBLIC VARIABLES >>>>>> 00013 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00014 //<<<<<< CLASS DECLARATIONS >>>>>> 00015 00016 class BufferOutputStream : public FilterOutputStream 00017 { 00018 public: 00019 BufferOutputStream (OutputStream *output, IOSize bufsize = 0); 00020 ~BufferOutputStream (void); 00021 00022 using FilterOutputStream::write; 00023 virtual IOSize write (const void *from, IOSize n); 00024 virtual IOSize flush (void); 00025 virtual void finish (void); 00026 virtual void close (void); 00027 00028 protected: 00029 unsigned char *m_buffer; 00030 unsigned char *m_top; 00031 unsigned char *m_limit; 00032 }; 00033 00034 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00035 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00036 00037 } // namespace lat 00038 #endif // CLASSLIB_BUFFER_OUTPUT_STREAM_H