libcluon  0.0.148
cluon::ToCSVVisitor Class Reference

#include <ToCSVVisitor.hpp>

Public Member Functions

 ToCSVVisitor (char delimiter=';', bool withHeader=true, const std::map< uint32_t, bool > &mask={}) noexcept
 
std::string csv () const noexcept
 
void clear () noexcept
 
void preVisit (int32_t id, const std::string &shortName, const std::string &longName) noexcept
 
void postVisit () noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, bool &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, char &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int8_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint8_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int16_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint16_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int32_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint32_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, int64_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, uint64_t &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, float &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, double &v) noexcept
 
void visit (uint32_t id, std::string &&typeName, std::string &&name, std::string &v) noexcept
 
template<typename T >
void visit (uint32_t &id, std::string &&typeName, std::string &&name, T &value) noexcept
 

Protected Member Functions

 ToCSVVisitor (const std::string &prefix, char delimiter, bool withHeader, bool isNested) noexcept
 

Detailed Description

This class provides a visitor to transform a message into CSV with user-specified delimiters and optional column headers:

MyMessage msg;
// Set some values in msg.
msg.accept(csv);
std::cout << csv.csv() << std::endl;

Subsequent use of this visitor will append the data (please keep in mind to not change the visited messages in between as the generated CSV data will be messed up otherwise).

Constructor & Destructor Documentation

◆ ToCSVVisitor() [1/2]

cluon::ToCSVVisitor::ToCSVVisitor ( char  delimiter = ';',
bool  withHeader = true,
const std::map< uint32_t, bool > &  mask = {} 
)
noexcept

Constructor.

Parameters
delimiterDelimiter character.
withHeaderIf true, the first line in the output contains the column headers.
maskMap describing which fields to render. If empty, all fields will be emitted; individual field identifiers can be masked setting them to false.

◆ ToCSVVisitor() [2/2]

cluon::ToCSVVisitor::ToCSVVisitor ( const std::string &  prefix,
char  delimiter,
bool  withHeader,
bool  isNested 
)
protectednoexcept

Constructor for internal use.

Parameters
prefixPrefix to prepend per column header.
delimiterDelimiter character.
withHeaderIf true, the first line in the output contains the column headers.
isNestedIf true, the returned CSV values do not have a trailing new line.

Member Function Documentation

◆ clear()

void cluon::ToCSVVisitor::clear ( )
noexcept

This method clears the containing CSV data.

◆ csv()

std::string cluon::ToCSVVisitor::csv ( ) const
noexcept
Returns
CSV-encoded data.

References retVal.

◆ postVisit()

void cluon::ToCSVVisitor::postVisit ( )
noexcept

◆ preVisit()

void cluon::ToCSVVisitor::preVisit ( int32_t  id,
const std::string &  shortName,
const std::string &  longName 
)
noexcept

◆ visit() [1/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
bool &  v 
)
noexcept

◆ visit() [2/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
char &  v 
)
noexcept

◆ visit() [3/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int8_t &  v 
)
noexcept

◆ visit() [4/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint8_t &  v 
)
noexcept

◆ visit() [5/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int16_t &  v 
)
noexcept

◆ visit() [6/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint16_t &  v 
)
noexcept

◆ visit() [7/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int32_t &  v 
)
noexcept

◆ visit() [8/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint32_t &  v 
)
noexcept

◆ visit() [9/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
int64_t &  v 
)
noexcept

◆ visit() [10/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
uint64_t &  v 
)
noexcept

◆ visit() [11/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
float &  v 
)
noexcept

◆ visit() [12/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
double &  v 
)
noexcept

◆ visit() [13/14]

void cluon::ToCSVVisitor::visit ( uint32_t  id,
std::string &&  typeName,
std::string &&  name,
std::string &  v 
)
noexcept

◆ visit() [14/14]

template<typename T >
void cluon::ToCSVVisitor::visit ( uint32_t &  id,
std::string &&  typeName,
std::string &&  name,
T &  value 
)
inlinenoexcept