13 #include <boost/noncopyable.hpp>
22 #include <boost/ptr_container/ptr_list.hpp>
24 #include <tbb/spin_mutex.h>
25 #include <tbb/spin_rw_mutex.h>
39 typedef std::list<Value>
List;
53 explicit Parent(
const char* g,
double p)
54 : group(g), percent(p) { }
60 { parents.push_back(
Parent(n,percent));
return *
this; }
64 std::string str()
const;
66 explicit Value(
double number,
unsigned line);
72 explicit Column(
Column& parent,
const std::string& label);
74 Column& getColumn(
const std::string& label,
int index = -1);
76 Value& addValue(
double);
85 void reset(
bool resetWidth);
87 int print(std::ostream* textstream, std::ostream* csvsteram,
bool headers);
91 void updateWidth(
unsigned,
bool onlyIfGreater=
true);
96 std::string
label()
const {
return myLabel; }
99 bool hasBeenPrinted();
118 return myRootColumn.
getColumn(label, index);
123 return getColumn(std::string(label), index);
126 unsigned lineNumber()
const;
127 void incrementLineNumber();
130 void reset(
bool resetWidth =
false);
134 void printText(
const std::string&);
136 void setOutput(
const std::string& file);
137 void setTag(
const std::string& tag);
const char * group
Definition: columnLogger.h:50
Column & getColumn(const std::string &label, int index=-1)
Definition: columnLogger.h:116
Parent::Sequence parents
Definition: columnLogger.h:57
Value::List & values()
Definition: columnLogger.h:93
Sequence myColumns
Definition: columnLogger.h:113
std::string myTextOutputFile
Definition: columnLogger.h:146
unsigned myCurrentLine
Definition: columnLogger.h:142
Column & getColumn(const char *label, int index=-1)
Definition: columnLogger.h:121
Definition: columnLogger.h:46
unsigned precision
Definition: columnLogger.h:44
Value & setPrecision(unsigned p)
Definition: columnLogger.h:62
unsigned myMaxWidth
Definition: columnLogger.h:110
Definition: columnLogger.h:34
unsigned myLinesSinceHeaderPrint
Definition: columnLogger.h:143
Sequence & subColumns()
Definition: columnLogger.h:94
tbb::spin_rw_mutex Mutex
Definition: columnLogger.h:102
void print(double **a, int r, int c, const char *str)
Definition: columnLogger.h:37
unsigned line
Definition: columnLogger.h:41
Column myRootColumn
Definition: columnLogger.h:145
IMGUI_API void Value(const char *prefix, bool b)
DtColumnLogger & myLogger
Definition: columnLogger.h:105
unsigned calls
Definition: columnLogger.h:43
double number
Definition: columnLogger.h:42
Column & getColumn(const std::string &label, int index=-1)
std::list< Value > List
Definition: columnLogger.h:39
std::vector< Parent > Sequence
Definition: columnLogger.h:48
bool myNewFlag
Definition: columnLogger.h:111
Value & setGroup(const char *n, double percent)
Definition: columnLogger.h:59
std::string myTag
Definition: columnLogger.h:148
boost::ptr_list< Column > Sequence
Definition: columnLogger.h:69
std::string myCSVOutputFile
Definition: columnLogger.h:147
Value & addValue(T val)
Definition: columnLogger.h:79
Definition: columnLogger.h:27
Value::List myValues
Definition: columnLogger.h:108
#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:96
std::ostream * myTextOutput
Definition: columnLogger.h:150
std::string myLabel
Definition: columnLogger.h:107
Value & addCalls(unsigned c)
Definition: columnLogger.h:61
std::ostream * myCSVOutput
Definition: columnLogger.h:151
double percent
Definition: columnLogger.h:51
Parent(const char *g, double p)
Definition: columnLogger.h:53
Mutex myMutex
Definition: columnLogger.h:104