OSVR-Core
Public Member Functions | Friends | List of all members
osvr::util::StreamCSV Class Reference

A CSV object taking a reference to an ostream that should remain valid throughout the entire lifetime of this object. More...

#include <CSV.h>

Inheritance diagram for osvr::util::StreamCSV:
osvr::util::CSVBase< StreamCSV > osvr::util::detail::CSVCommonBase

Public Member Functions

 StreamCSV (std::ostream &os)
 Constructor. More...
 
void startOutput ()
 Outputs all the stored rows and columns, with the union of all headers in the first row, quoted, to the std::ostream given at construction, and starts streaming any additional rows. More...
 
- Public Member Functions inherited from osvr::util::CSVBase< StreamCSV >
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...
 
- Public Member Functions inherited from osvr::util::detail::CSVCommonBase
column_id getColumn (std::string const &heading)
 
column_id numColumns () const
 

Friends

class CSVBase< StreamCSV >
 

Additional Inherited Members

- Public Types inherited from osvr::util::CSVBase< StreamCSV >
using RowProxy = detail::CSVRowProxy< StreamCSV >
 
- Public Types inherited from osvr::util::detail::CSVCommonBase
using DataRow = std::vector< std::string >
 
using column_id = std::size_t
 
- Protected Member Functions inherited from osvr::util::CSVBase< StreamCSV >
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()
 
- Protected Member Functions inherited from osvr::util::detail::CSVCommonBase
void outputHeaders (std::ostream &os) const
 

Detailed Description

A CSV object taking a reference to an ostream that should remain valid throughout the entire lifetime of this object.

Once you start output, it will output the headers and any existing rows, and from then on, it will will output each row as it is finalized. Of course, any additional headers acquired after you start streaming can't be added to the first row retroactively, but they will be consistent (leaving blanks if appropriate, etc.)

Constructor & Destructor Documentation

§ StreamCSV()

osvr::util::StreamCSV::StreamCSV ( std::ostream &  os)
inlineexplicit

Constructor.

Parameters
osReference to the desired output stream, which must remain valid for the lifetime of this object.

Member Function Documentation

§ startOutput()

void osvr::util::StreamCSV::startOutput ( )
inline

Outputs all the stored rows and columns, with the union of all headers in the first row, quoted, to the std::ostream given at construction, and starts streaming any additional rows.


The documentation for this class was generated from the following file: