204 // managed in C heap. Not MT-safe. |
204 // managed in C heap. Not MT-safe. |
205 class bufferedStream : public outputStream { |
205 class bufferedStream : public outputStream { |
206 protected: |
206 protected: |
207 char* buffer; |
207 char* buffer; |
208 size_t buffer_pos; |
208 size_t buffer_pos; |
|
209 size_t buffer_max; |
209 size_t buffer_length; |
210 size_t buffer_length; |
210 bool buffer_fixed; |
211 bool buffer_fixed; |
211 public: |
212 public: |
212 bufferedStream(size_t initial_bufsize = 256); |
213 bufferedStream(size_t initial_bufsize = 256, size_t bufmax = 1024*1024*10); |
213 bufferedStream(char* fixed_buffer, size_t fixed_buffer_size); |
214 bufferedStream(char* fixed_buffer, size_t fixed_buffer_size, size_t bufmax = 1024*1024*10); |
214 ~bufferedStream(); |
215 ~bufferedStream(); |
215 virtual void write(const char* c, size_t len); |
216 virtual void write(const char* c, size_t len); |
216 size_t size() { return buffer_pos; } |
217 size_t size() { return buffer_pos; } |
217 const char* base() { return buffer; } |
218 const char* base() { return buffer; } |
218 void reset() { buffer_pos = 0; _precount = 0; _position = 0; } |
219 void reset() { buffer_pos = 0; _precount = 0; _position = 0; } |