OSVR-Core
|
(Base) Class for easily outputting CSV files. More...
#include <CSV.h>
Public Types | |
using | RowProxy = detail::CSVRowProxy< Derived > |
![]() | |
using | DataRow = std::vector< std::string > |
using | column_id = std::size_t |
Public Member Functions | |
RowProxy | row () |
Main call for the CSV object: returns a proxy object that you can redirect "cells" into, in order to add them to a new row in the CSV table. More... | |
std::size_t | numDataRows () const |
Gets the number of rows in the internal data storage. More... | |
std::size_t | numRows () const |
Gets the total number of rows that have been streamed/added to this CSV object, whether or not they're in the internal data storage. More... | |
![]() | |
column_id | getColumn (std::string const &heading) |
column_id | numColumns () const |
Protected Member Functions | |
void | prepareForRow () |
Called by CSVRowProxy life cycle, on row creation. | |
void | dataForLatestRow (std::string const &heading, std::string const &data) |
Called by CSVRowProxy life cycle, on cell addition. | |
void | finalizeLatestRow () |
Called by CSVRowProxy life cycle, on destruction of active row proxy. More... | |
DataRow & | latestRow () |
Called internally and potentially by derived classes for access to the "latest row" temporary storage. More... | |
void | outputRow (std::ostream &os, DataRow const &row) const |
Called by outputData() and by derived classes to format individual rows. More... | |
void | outputData (std::ostream &os) const |
Called by derived classes to output stored data rows. | |
void | moveLatestRowToData () |
utility function for use in derived finalizeLatestRow() | |
![]() | |
void | outputHeaders (std::ostream &os) const |
Friends | |
class | detail::CSVRowProxy< Derived > |
(Base) Class for easily outputting CSV files.
Just call the .row() method and feed it << cell("header", yourdata) << cell("anotherheader", moredata); for as many rows as you want (one row call per row, of course).
Methods of outputting the CSV data to an ostream vary between subclasses. This is a "curiously-recurring template pattern" base class for compile-time polymorphism.
|
inlineprotected |
Called by CSVRowProxy life cycle, on destruction of active row proxy.
Delegates to derived classes, since this is a variance between them.
|
inlineprotected |
Called internally and potentially by derived classes for access to the "latest row" temporary storage.
|
inline |
|
inline |
Gets the total number of rows that have been streamed/added to this CSV object, whether or not they're in the internal data storage.
That is, numRows() >= numDataRows()
|
inlineprotected |
Called by outputData() and by derived classes to format individual rows.
|
inline |