Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Types | Private Member Functions | Private Attributes
jafar::kernel::DataLogger Class Reference

This object logs data in a single log file. More...


Detailed Description

This object logs data in a single log file.

Definition at line 151 of file dataLog.hpp.

#include <dataLog.hpp>

List of all members.

Public Member Functions

 DataLogger (std::string const &logFilename_, char separator_= '\t', char commentPrefix_= '#')
void setLoggerTask (LoggerTask *loggerTask)
 setting a logger task defers actual file write to a separate thread
void writeComment (std::string const &comment_)
 write comment_
void writeCurrentDate ()
 write current date as a comment
void addLoggable (DataLoggable &loggable_)
 add loggable_ to be logged by this logger. The log header is printed at this moment, so you should use this function when all objects have been created.
void removeLoggable (DataLoggable const &loggable_)
 remove loggable_
void addSlaveLogger (DataLogger &logger_)
 Add slave logger_.
void log ()
 this method triggers a log.
void logStats ()
 this method triggers a log of stats.
void writeLegend (std::string const &legend_)
 This method writes a line of legend.
void writeLegendTokens (std::string const &legendTokens_, std::string const &tokenSep_=" ")
 This method writes lines of legend based on the tokens found in legendTokens_ and seperated by separator_.
template<typename T >
void writeData (T const &d)
 this method logs any data
void writeNewLine ()
void writeNaN ()
 write a NaN to the log
template<class Vec >
void writeDataVector (Vec const &v)
 this method logs any data vector

Private Types

typedef std::list
< DataLoggable const * > 
LoggablesList
typedef std::list< DataLogger * > LoggersList

Private Member Functions

void write (std::ostringstream &content)

Private Attributes

std::ofstream logStream
std::ostringstream logHeaderLine
std::ostringstream logContent
bool logStarted
char separator
 default separator is whitespace
char commentPrefix
 default comment prefix is '# '
unsigned int nbColumns
LoggerTaskloggerTask
LoggablesList loggables
LoggersList slaves

Constructor & Destructor Documentation

jafar::kernel::DataLogger::DataLogger ( std::string const &  logFilename_,
char  separator_ = '\t',
char  commentPrefix_ = '#' 
)
Parameters:
logFilename_filename of the data log.
separator_string used to separate the data
commentPrefix_string which starts a comment line

Member Function Documentation

Add slave logger_.

log() events are dispatched to the slaves.

void jafar::kernel::DataLogger::writeLegend ( std::string const &  legend_)

This method writes a line of legend.

Example:

  log.writeLegend("x");

Referenced by jafar::simu::RobotPoseAnalysis::writeLogHeader().

void jafar::kernel::DataLogger::writeLegendTokens ( std::string const &  legendTokens_,
std::string const &  tokenSep_ = " " 
)

This method writes lines of legend based on the tokens found in legendTokens_ and seperated by separator_.

It uses boost::tokenizer. Example:

  log.writeLegendTokens("x y z");

Referenced by jafar::simu::RobotPoseAnalysis::writeLogHeader(), jafar::rtslam::simu::MobileObject::writeLogHeader(), and jafar::rtslam::DataManagerOnePointRansac< RawSpec, SensorSpec, FeatureSpec, RoiSpec, FeatureManagerSpec, DetectorSpec, MatcherSpec >::writeLogHeader().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:40 for Jafar by doxygen 1.7.6.1
LAAS-CNRS