multiline_ostream.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <iostream>
4 #include <vector>
5 
6 namespace iv
7 {
8 
9 class multiline_ostream_streambuf : public std::streambuf
10 {
11 public:
12  multiline_ostream_streambuf( std::ostream * out );
13  virtual std::streambuf::int_type overflow( std::streambuf::int_type value ) override;
14 
15  void multiline_begin();
16  void multiline_end();
17  void clear();
18 
19 private:
20  std::ostream * out;
21  size_t pos;
22  std::vector< size_t > lengths;
23 };
24 
25 class multiline_ostream : public std::ostream
26 {
27 public:
28  multiline_ostream( std::ostream * out );
30 
31  void multiline_begin();
32  void multiline_end();
33  void clear();
34 };
35 
36 }