14 #include <boost/noncopyable.hpp>
15 #include <boost/ptr_container/ptr_list.hpp>
17 #include <tbb/spin_mutex.h>
18 #include <tbb/spin_rw_mutex.h>
41 typedef std::list<Value>
List;
55 explicit Parent(
const char* g,
double p)
56 : group(g), percent(p) { }
62 { parents.push_back(
Parent(n,percent));
return *
this; }
66 std::string str()
const;
68 explicit Value(
double number,
unsigned line);
74 explicit Column(
Column& parent,
const std::string& label);
76 Column& getColumn(
const std::string& label,
int index = -1);
78 Value& addValue(
double);
87 void reset(
bool resetWidth);
89 int print(std::ostream* textstream, std::ostream* csvsteram,
bool headers);
93 void updateWidth(
unsigned,
bool onlyIfGreater=
true);
98 std::string
label()
const {
return myLabel; }
100 void markAsPrinted();
101 bool hasBeenPrinted();
120 return myRootColumn.
getColumn(label, index);
125 return getColumn(std::string(label), index);
128 unsigned lineNumber()
const;
129 void incrementLineNumber();
132 void reset(
bool resetWidth =
false);
136 void printText(
const std::string&);
138 void setOutput(
const std::string& file);
139 void setTag(
const std::string& tag);
const char * group
Definition: columnLogger.h:52
Column & getColumn(const std::string &label, int index=-1)
Definition: columnLogger.h:118
Parent::Sequence parents
Definition: columnLogger.h:59
Value::List & values()
Definition: columnLogger.h:95
Sequence myColumns
Definition: columnLogger.h:115
std::string myTextOutputFile
Definition: columnLogger.h:148
unsigned myCurrentLine
Definition: columnLogger.h:144
Column & getColumn(const char *label, int index=-1)
Definition: columnLogger.h:123
Definition: columnLogger.h:48
unsigned precision
Definition: columnLogger.h:46
Value & setPrecision(unsigned p)
Definition: columnLogger.h:64
unsigned myMaxWidth
Definition: columnLogger.h:112
Definition: columnLogger.h:36
unsigned myLinesSinceHeaderPrint
Definition: columnLogger.h:145
Sequence & subColumns()
Definition: columnLogger.h:96
tbb::spin_rw_mutex Mutex
Definition: columnLogger.h:104
void print(double **a, int r, int c, const char *str)
Definition: columnLogger.h:39
unsigned line
Definition: columnLogger.h:43
Column myRootColumn
Definition: columnLogger.h:147
IMGUI_API void Value(const char *prefix, bool b)
DtColumnLogger & myLogger
Definition: columnLogger.h:107
unsigned calls
Definition: columnLogger.h:45
double number
Definition: columnLogger.h:44
Column & getColumn(const std::string &label, int index=-1)
std::list< Value > List
Definition: columnLogger.h:41
std::vector< Parent > Sequence
Definition: columnLogger.h:50
bool myNewFlag
Definition: columnLogger.h:113
Value & setGroup(const char *n, double percent)
Definition: columnLogger.h:61
std::string myTag
Definition: columnLogger.h:150
boost::ptr_list< Column > Sequence
Definition: columnLogger.h:71
std::string myCSVOutputFile
Definition: columnLogger.h:149
Value & addValue(T val)
Definition: columnLogger.h:81
Third party includes.
Definition: columnLogger.h:29
Value::List myValues
Definition: columnLogger.h:110
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
std::string label() const
Definition: columnLogger.h:98
std::ostream * myTextOutput
Definition: columnLogger.h:152
std::string myLabel
Definition: columnLogger.h:109
Value & addCalls(unsigned c)
Definition: columnLogger.h:63
std::ostream * myCSVOutput
Definition: columnLogger.h:153
double percent
Definition: columnLogger.h:53
Parent(const char *g, double p)
Definition: columnLogger.h:55
Mutex myMutex
Definition: columnLogger.h:106