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 
6 void CSVLogger::addColumn(std::string name) { columns_[name] = 0.0; }
7 void CSVLogger::updateColumn(std::string name, double value) { columns_[name] = value; }
8 
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 
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 
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(); }
63 {
64  if (file_)
65  {
66  file_->close();
67  return !isOpen();
68  }
69  return false;
70 }
71 
73 {
74  if (isOpen()) close();
75 
76  if (open())
77  {
78  return writeHeader();
79  }
80 
81  return false;
82 }
83 
85 {
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