libzypp  17.14.0
DrunkenBishop.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
11 #ifndef ZYPP_BASE_DRUNKENBISHOP_H
12 #define ZYPP_BASE_DRUNKENBISHOP_H
13 
14 #include <iosfwd>
15 #include <vector>
16 #include <string>
17 
18 #include "zypp/base/PtrTypes.h"
19 #include "zypp/base/Flags.h"
20 
22 namespace zypp
23 {
25  namespace base
26  {
62  {
63  friend std::ostream & operator<<( std::ostream & str, const DrunkenBishop & obj );
64 
65  public:
67  DrunkenBishop();
68 
70  DrunkenBishop( const std::string & data_r, const std::string & title_r = std::string() );
71 
73  DrunkenBishop( const std::string & data_r, const std::string & title_r, unsigned height_r );
75  DrunkenBishop( const std::string & data_r, unsigned height_r )
76  : DrunkenBishop( data_r, std::string(), height_r )
77  {}
78 
80  DrunkenBishop( const std::string & data_r, const std::string & title_r, unsigned height_r, unsigned width_r );
82  DrunkenBishop( const std::string & data_r, unsigned height_r, unsigned width_r )
83  : DrunkenBishop( data_r, std::string(), height_r, width_r )
84  {}
85 
88 
89  public:
90  /* Rendering options */
91  enum OptionBits {
92  USE_COLOR = (1<<0),
93  };
95 
97  std::ostream & dumpOn( std::ostream & str, Options options_r = Options() ) const
98  { return dumpOn( str, std::string(), options_r ); }
100  std::ostream & dumpOn( std::ostream & str, const std::string & prefix_r, Options options_r = Options() ) const;
101 
103  std::string asString( Options options_r = Options() ) const
104  { return asString( std::string(), options_r ); }
106  std::string asString( const std::string & prefix_r, Options options_r = Options() ) const;
107 
109  std::vector<std::string> asLines( Options options_r = Options() ) const
110  { return asLines( std::string(), options_r ); }
112  std::vector<std::string> asLines( const std::string & prefix_r, Options options_r = Options() ) const;
113 
114  public:
115  class Impl;
116  private:
118  };
119 
120  ZYPP_DECLARE_OPERATORS_FOR_FLAGS(DrunkenBishop::Options);
121 
123  inline std::ostream & operator<<( std::ostream & str, const DrunkenBishop & obj )
124  { return obj.dumpOn( str ); }
125 
126  } // namespace base
128 } // namespace zypp
130 #endif // ZYPP_BASE_DRUNKENBISHOP_H