Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00030 #ifndef __CLAW_BUFFERED_OSTREAM_HPP__
00031 #define __CLAW_BUFFERED_OSTREAM_HPP__
00032
00033 namespace claw
00034 {
00039 template< typename Stream >
00040 class buffered_ostream
00041 {
00042 private:
00044 typedef Stream stream_type;
00045
00046 public:
00047 buffered_ostream( stream_type& f, unsigned int buffer_size = 1024 );
00048 ~buffered_ostream();
00049
00050 template<typename T>
00051 void write(T v);
00052
00053 void write(const char* p, unsigned int n);
00054
00055 void flush();
00056
00057 private:
00059 stream_type& m_stream;
00060
00062 char* const m_begin;
00063
00066 char* const m_end;
00067
00069 char* m_current;
00070
00071 };
00072 }
00073
00074 #include <claw/impl/buffered_ostream.tpp>
00075
00076 #endif // __CLAW_BUFFERED_OSTREAM_HPP__