source: molecuilder/src/verbose.cpp@ 60612f

Last change on this file since 60612f was edf611, checked in by Frederik Heber <heber@…>, 16 years ago

New Info class that contains a global verbosity level, increased per function call and decreased per exit.

  • the idea is to have the "begin of .." and "end of .." messages in an object that automatically holds the current recursion level and hence may change verbosity accordingly for Logger
  • verbose::DoOutput() checks relative to Info::verbosity now.
  • InfoUnitTest was done and works well.

Signed-off-by: Frederik Heber <heber@…>

  • Property mode set to 100755
File size: 2.2 KB
Line 
1using namespace std;
2
3#include "info.hpp"
4#include "verbose.hpp"
5
6/** Prints the tabs according to verbosity stored in the temporary constructed class.
7 * \param &ost stream to extend with tabs
8 * \return &ost stream with tabs
9 */
10ostream& Verbose::print (ostream &ost) const
11{
12 for (int i=Verbosity+Info::verbosity;i--;)
13 ost.put('\t');
14 //Log() << Verbose(0) << "Verbose(.) called." << endl;
15 return ost;
16};
17
18/** States whether current output message should be print or not.
19 * Compares Verbose::Verbosity against \a verbosityLevel.
20 * \param verbosityLevel given global level of verbosity
21 * \return true - do output, false - don't
22 */
23bool Verbose::DoOutput(int verbosityLevel) const
24{
25 return (verbosityLevel >= Verbosity+Info::verbosity);
26};
27
28
29/** Operator for the Verbose(arg) call.
30 * Constructs temporary a Verbose class object, wherein the verbosity is stored.
31 * Then << is called, which calls Verbose's print which adds the tabs and returns the stream.
32 * \param &ost stream to extend
33 * \param &m pointer to created Verbose object
34 * \return &ost
35 */
36ostream& operator<<(ostream& ost,const Verbose& m)
37{
38 return m.print(ost);
39};
40
41/** Prints the tabs according to verbosity stored in the temporary constructed class.
42 * Note that highest bit is set artificially to give number of bits to print
43 * \param &ost stream to extend with tabs
44 * \return &ost stream with tabs
45 */
46ostream& Binary::print (ostream &ost) const
47{
48 int bits = 1, counter = 1;
49 while ((bits = 1 << counter) < BinaryNumber)
50 counter++;
51 for (int i=0;i<counter-1;i++) {
52 if ((BinaryNumber & (1 << i)) == 0)
53 ost.put('0');
54 else
55 ost.put('1');
56 }
57 ost.put('b');
58 //Log() << Verbose(0) << "Binary(.) called." << endl;
59 return ost;
60};
61
62/** Operator for the Binary(arg) call.
63 * Constructs temporary a Verbose class object, wherein the Binary is stored.
64 * Then << is called, which calls Binary's print which adds the tabs and returns the stream.
65 * \param &ost stream to extend
66 * \param &m pointer to created Binary object
67 * \return &ost
68 */
69ostream& operator<<(ostream& ost,const Binary& m)
70{
71 return m.print(ost);
72};
Note: See TracBrowser for help on using the repository browser.