modules
simulator
src
CsvLogger.cpp
Go to the documentation of this file.
1
#include "
mvsim/CsvLogger.h
"
2
3
CSVLogger::CSVLogger
() {
file_
= std::make_shared<std::ofstream>(std::ofstream()); }
4
5
CSVLogger::~CSVLogger
() {
close
(); }
6
void
CSVLogger::addColumn
(std::string name) {
columns_
[name] = 0.0; }
7
void
CSVLogger::updateColumn
(std::string name,
double
value) {
columns_
[name] = value; }
8
9
bool
CSVLogger::writeHeader
()
10
{
11
columns_type::iterator it;
12
for
(it =
columns_
.begin(); it !=
columns_
.end();)
13
{
14
*
file_
<< it->first;
15
16
if
(++it !=
columns_
.end())
17
{
18
*
file_
<<
", "
;
19
}
20
}
21
22
*
file_
<<
"\n"
;
// most CSV readers don't use \r\n
23
24
return
!!
file_
;
25
}
26
27
bool
CSVLogger::writeRow
()
28
{
29
if
(!
isRecording
)
return
true
;
30
31
if
(!
isOpen
())
clear
();
32
33
columns_type::iterator it;
34
for
(it =
columns_
.begin(); it !=
columns_
.end();)
35
{
36
*
file_
<< it->second;
37
38
if
(++it !=
columns_
.end())
39
{
40
*
file_
<<
", "
;
41
}
42
}
43
44
*
file_
<<
"\n"
;
45
46
return
!!
file_
;
47
}
48
49
bool
CSVLogger::open
()
50
{
51
if
(
file_
)
52
{
53
file_
->open(
54
(std::string(
"session"
) + std::to_string(
currentSession
) + std::string(
"-"
) +
filepath_
)
55
.c_str());
56
return
isOpen
();
57
}
58
return
false
;
59
}
60
61
bool
CSVLogger::isOpen
() {
return
file_
->is_open(); }
62
bool
CSVLogger::close
()
63
{
64
if
(
file_
)
65
{
66
file_
->close();
67
return
!
isOpen
();
68
}
69
return
false
;
70
}
71
72
bool
CSVLogger::clear
()
73
{
74
if
(
isOpen
())
close
();
75
76
if
(
open
())
77
{
78
return
writeHeader
();
79
}
80
81
return
false
;
82
}
83
84
void
CSVLogger::newSession
()
85
{
86
currentSession
++;
87
close
();
88
}
CSVLogger::currentSession
unsigned int currentSession
Definition:
CsvLogger.h:37
CSVLogger::columns_
columns_type columns_
Definition:
CsvLogger.h:33
CSVLogger::isRecording
bool isRecording
Definition:
CsvLogger.h:36
CSVLogger::addColumn
void addColumn(std::string name)
Definition:
CsvLogger.cpp:6
CSVLogger::clear
bool clear()
Definition:
CsvLogger.cpp:72
CSVLogger::writeHeader
bool writeHeader()
Definition:
CsvLogger.cpp:9
CSVLogger::updateColumn
void updateColumn(std::string name, double value)
Definition:
CsvLogger.cpp:7
CSVLogger::~CSVLogger
virtual ~CSVLogger()
Definition:
CsvLogger.cpp:5
CSVLogger::close
bool close()
Definition:
CsvLogger.cpp:62
CSVLogger::writeRow
bool writeRow()
Definition:
CsvLogger.cpp:27
CSVLogger::newSession
void newSession()
Definition:
CsvLogger.cpp:84
CSVLogger::isOpen
bool isOpen()
Definition:
CsvLogger.cpp:61
CSVLogger::file_
std::shared_ptr< std::ofstream > file_
Definition:
CsvLogger.h:34
CSVLogger::filepath_
std::string filepath_
Definition:
CsvLogger.h:35
CSVLogger::CSVLogger
CSVLogger()
Definition:
CsvLogger.cpp:3
CsvLogger.h
CSVLogger::open
bool open()
Definition:
CsvLogger.cpp:49
mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:07