Path Tracer
Public Member Functions | List of all members
rapidcsv::Document Class Reference

Class representing a CSV document. More...

#include <rapidcsv.hpp>

Public Member Functions

 Document (const std::string &pPath=std::string(), const LabelParams &pLabelParams=LabelParams(), const SeparatorParams &pSeparatorParams=SeparatorParams(), const ConverterParams &pConverterParams=ConverterParams())
 Constructor. More...
 
 Document (std::istream &pStream, const LabelParams &pLabelParams=LabelParams(), const SeparatorParams &pSeparatorParams=SeparatorParams(), const ConverterParams &pConverterParams=ConverterParams())
 Constructor. More...
 
void Load (const std::string &pPath)
 Read Document data from file. More...
 
void Load (std::istream &pStream)
 Read Document data from stream. More...
 
void Save (const std::string &pPath=std::string())
 Write Document data to file. More...
 
void Save (std::ostream &pStream)
 Write Document data to stream. More...
 
ssize_t GetColumnIdx (const std::string &pColumnName) const
 Get column index by name. More...
 
template<typename T >
std::vector< T > GetColumn (const size_t pColumnIdx) const
 Get column by index. More...
 
template<typename T >
std::vector< T > GetColumn (const size_t pColumnIdx, ConvFunc< T > pToVal) const
 Get column by index. More...
 
template<typename T >
std::vector< T > GetColumn (const std::string &pColumnName) const
 Get column by name. More...
 
template<typename T >
std::vector< T > GetColumn (const std::string &pColumnName, ConvFunc< T > pToVal) const
 Get column by name. More...
 
template<typename T >
void SetColumn (const size_t pColumnIdx, const std::vector< T > &pColumn)
 Set column by index. More...
 
template<typename T >
void SetColumn (const std::string &pColumnName, const std::vector< T > &pColumn)
 Set column by name. More...
 
void RemoveColumn (const size_t pColumnIdx)
 Remove column by index. More...
 
void RemoveColumn (const std::string &pColumnName)
 Remove column by name. More...
 
size_t GetColumnCount () const
 Get number of data columns (excluding label columns). More...
 
ssize_t GetRowIdx (const std::string &pRowName) const
 Get row index by name. More...
 
template<typename T >
std::vector< T > GetRow (const size_t pRowIdx) const
 Get row by index. More...
 
template<typename T >
std::vector< T > GetRow (const size_t pRowIdx, ConvFunc< T > pToVal) const
 Get row by index. More...
 
template<typename T >
std::vector< T > GetRow (const std::string &pRowName) const
 Get row by name. More...
 
template<typename T >
std::vector< T > GetRow (const std::string &pRowName, ConvFunc< T > pToVal) const
 Get row by name. More...
 
template<typename T >
void SetRow (const size_t pRowIdx, const std::vector< T > &pRow)
 Set row by index. More...
 
template<typename T >
void SetRow (const std::string &pRowName, const std::vector< T > &pRow)
 Set row by name. More...
 
void RemoveRow (const size_t pRowIdx)
 Remove row by index. More...
 
void RemoveRow (const std::string &pRowName)
 Remove row by name. More...
 
size_t GetRowCount () const
 Get number of data rows (excluding label rows). More...
 
template<typename T >
GetCell (const size_t pColumnIdx, const size_t pRowIdx) const
 Get cell by index. More...
 
template<typename T >
GetCell (const size_t pColumnIdx, const size_t pRowIdx, ConvFunc< T > pToVal) const
 Get cell by index. More...
 
template<typename T >
GetCell (const std::string &pColumnName, const std::string &pRowName) const
 Get cell by name. More...
 
template<typename T >
GetCell (const std::string &pColumnName, const std::string &pRowName, ConvFunc< T > pToVal) const
 Get cell by name. More...
 
template<typename T >
GetCell (const std::string &pColumnName, const size_t pRowIdx) const
 Get cell by column name and row index. More...
 
template<typename T >
GetCell (const std::string &pColumnName, const size_t pRowIdx, ConvFunc< T > pToVal) const
 Get cell by column name and row index. More...
 
template<typename T >
GetCell (const size_t pColumnIdx, const std::string &pRowName) const
 Get cell by column index and row name. More...
 
template<typename T >
GetCell (const size_t pColumnIdx, const std::string &pRowName, ConvFunc< T > pToVal) const
 Get cell by column index and row name. More...
 
template<typename T >
void SetCell (const size_t pColumnIdx, const size_t pRowIdx, const T &pCell)
 Set cell by index. More...
 
template<typename T >
void SetCell (const std::string &pColumnName, const std::string &pRowName, const T &pCell)
 Set cell by name. More...
 
std::string GetColumnName (const ssize_t pColumnIdx)
 Get column name. More...
 
void SetColumnName (size_t pColumnIdx, const std::string &pColumnName)
 Set column name. More...
 
std::vector< std::string > GetColumnNames ()
 Get column names. More...
 
std::string GetRowName (const ssize_t pRowIdx)
 Get row name. More...
 
void SetRowName (size_t pRowIdx, const std::string &pRowName)
 Set row name. More...
 
std::vector< std::string > GetRowNames ()
 Get row names. More...
 

Detailed Description

Class representing a CSV document.

Constructor & Destructor Documentation

◆ Document() [1/2]

rapidcsv::Document::Document ( const std::string &  pPath = std::string(),
const LabelParams pLabelParams = LabelParams(),
const SeparatorParams pSeparatorParams = SeparatorParams(),
const ConverterParams pConverterParams = ConverterParams() 
)
inlineexplicit

Constructor.

Parameters
pPathspecifies the path of an existing CSV-file to populate the Document data with.
pLabelParamsspecifies which row and column should be treated as labels.
pSeparatorParamsspecifies which field and row separators should be used.
pConverterParamsspecifies how invalid numbers (including empty strings) should be handled.

◆ Document() [2/2]

rapidcsv::Document::Document ( std::istream &  pStream,
const LabelParams pLabelParams = LabelParams(),
const SeparatorParams pSeparatorParams = SeparatorParams(),
const ConverterParams pConverterParams = ConverterParams() 
)
inlineexplicit

Constructor.

Parameters
pStreamspecifies an input stream to read CSV data from.
pLabelParamsspecifies which row and column should be treated as labels.
pSeparatorParamsspecifies which field and row separators should be used.
pConverterParamsspecifies how invalid numbers (including empty strings) should be handled.

Member Function Documentation

◆ GetCell() [1/8]

template<typename T >
T rapidcsv::Document::GetCell ( const size_t  pColumnIdx,
const size_t  pRowIdx 
) const
inline

Get cell by index.

Parameters
pColumnIdxzero-based column index.
pRowIdxzero-based row index.
Returns
cell data.

◆ GetCell() [2/8]

template<typename T >
T rapidcsv::Document::GetCell ( const size_t  pColumnIdx,
const size_t  pRowIdx,
ConvFunc< T >  pToVal 
) const
inline

Get cell by index.

Parameters
pColumnIdxzero-based column index.
pRowIdxzero-based row index.
pToValconversion function.
Returns
cell data.

◆ GetCell() [3/8]

template<typename T >
T rapidcsv::Document::GetCell ( const size_t  pColumnIdx,
const std::string &  pRowName 
) const
inline

Get cell by column index and row name.

Parameters
pColumnIdxzero-based column index.
pRowNamerow label name.
Returns
cell data.

◆ GetCell() [4/8]

template<typename T >
T rapidcsv::Document::GetCell ( const size_t  pColumnIdx,
const std::string &  pRowName,
ConvFunc< T >  pToVal 
) const
inline

Get cell by column index and row name.

Parameters
pColumnIdxzero-based column index.
pRowNamerow label name.
pToValconversion function.
Returns
cell data.

◆ GetCell() [5/8]

template<typename T >
T rapidcsv::Document::GetCell ( const std::string &  pColumnName,
const size_t  pRowIdx 
) const
inline

Get cell by column name and row index.

Parameters
pColumnNamecolumn label name.
pRowIdxzero-based row index.
Returns
cell data.

◆ GetCell() [6/8]

template<typename T >
T rapidcsv::Document::GetCell ( const std::string &  pColumnName,
const size_t  pRowIdx,
ConvFunc< T >  pToVal 
) const
inline

Get cell by column name and row index.

Parameters
pColumnNamecolumn label name.
pRowIdxzero-based row index.
pToValconversion function.
Returns
cell data.

◆ GetCell() [7/8]

template<typename T >
T rapidcsv::Document::GetCell ( const std::string &  pColumnName,
const std::string &  pRowName 
) const
inline

Get cell by name.

Parameters
pColumnNamecolumn label name.
pRowNamerow label name.
Returns
cell data.

◆ GetCell() [8/8]

template<typename T >
T rapidcsv::Document::GetCell ( const std::string &  pColumnName,
const std::string &  pRowName,
ConvFunc< T >  pToVal 
) const
inline

Get cell by name.

Parameters
pColumnNamecolumn label name.
pRowNamerow label name.
pToValconversion function.
Returns
cell data.

◆ GetColumn() [1/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetColumn ( const size_t  pColumnIdx) const
inline

Get column by index.

Parameters
pColumnIdxzero-based column index.
Returns
vector of column data.

◆ GetColumn() [2/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetColumn ( const size_t  pColumnIdx,
ConvFunc< T >  pToVal 
) const
inline

Get column by index.

Parameters
pColumnIdxzero-based column index.
pToValconversion function.
Returns
vector of column data.

◆ GetColumn() [3/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetColumn ( const std::string &  pColumnName) const
inline

Get column by name.

Parameters
pColumnNamecolumn label name.
Returns
vector of column data.

◆ GetColumn() [4/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetColumn ( const std::string &  pColumnName,
ConvFunc< T >  pToVal 
) const
inline

Get column by name.

Parameters
pColumnNamecolumn label name.
pToValconversion function.
Returns
vector of column data.

◆ GetColumnCount()

size_t rapidcsv::Document::GetColumnCount ( ) const
inline

Get number of data columns (excluding label columns).

Returns
column count.

◆ GetColumnIdx()

ssize_t rapidcsv::Document::GetColumnIdx ( const std::string &  pColumnName) const
inline

Get column index by name.

Parameters
pColumnNamecolumn label name.
Returns
zero-based column index.

◆ GetColumnName()

std::string rapidcsv::Document::GetColumnName ( const ssize_t  pColumnIdx)
inline

Get column name.

Parameters
pColumnIdxzero-based column index.
Returns
column name.

◆ GetColumnNames()

std::vector<std::string> rapidcsv::Document::GetColumnNames ( )
inline

Get column names.

Returns
vector of column names.

◆ GetRow() [1/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetRow ( const size_t  pRowIdx) const
inline

Get row by index.

Parameters
pRowIdxzero-based row index.
Returns
vector of row data.

◆ GetRow() [2/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetRow ( const size_t  pRowIdx,
ConvFunc< T >  pToVal 
) const
inline

Get row by index.

Parameters
pRowIdxzero-based row index.
pToValconversion function.
Returns
vector of row data.

◆ GetRow() [3/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetRow ( const std::string &  pRowName) const
inline

Get row by name.

Parameters
pRowNamerow label name.
Returns
vector of row data.

◆ GetRow() [4/4]

template<typename T >
std::vector<T> rapidcsv::Document::GetRow ( const std::string &  pRowName,
ConvFunc< T >  pToVal 
) const
inline

Get row by name.

Parameters
pRowNamerow label name.
pToValconversion function.
Returns
vector of row data.

◆ GetRowCount()

size_t rapidcsv::Document::GetRowCount ( ) const
inline

Get number of data rows (excluding label rows).

Returns
row count.

◆ GetRowIdx()

ssize_t rapidcsv::Document::GetRowIdx ( const std::string &  pRowName) const
inline

Get row index by name.

Parameters
pRowNamerow label name.
Returns
zero-based row index.

◆ GetRowName()

std::string rapidcsv::Document::GetRowName ( const ssize_t  pRowIdx)
inline

Get row name.

Parameters
pRowIdxzero-based column index.
Returns
row name.

◆ GetRowNames()

std::vector<std::string> rapidcsv::Document::GetRowNames ( )
inline

Get row names.

Returns
vector of row names.

◆ Load() [1/2]

void rapidcsv::Document::Load ( const std::string &  pPath)
inline

Read Document data from file.

Parameters
pPathspecifies the path of an existing CSV-file to populate the Document data with.

◆ Load() [2/2]

void rapidcsv::Document::Load ( std::istream &  pStream)
inline

Read Document data from stream.

Parameters
pStreamspecifies an input stream to read CSV data from.

◆ RemoveColumn() [1/2]

void rapidcsv::Document::RemoveColumn ( const size_t  pColumnIdx)
inline

Remove column by index.

Parameters
pColumnIdxzero-based column index.

◆ RemoveColumn() [2/2]

void rapidcsv::Document::RemoveColumn ( const std::string &  pColumnName)
inline

Remove column by name.

Parameters
pColumnNamecolumn label name.

◆ RemoveRow() [1/2]

void rapidcsv::Document::RemoveRow ( const size_t  pRowIdx)
inline

Remove row by index.

Parameters
pRowIdxzero-based row index.

◆ RemoveRow() [2/2]

void rapidcsv::Document::RemoveRow ( const std::string &  pRowName)
inline

Remove row by name.

Parameters
pRowNamerow label name.

◆ Save() [1/2]

void rapidcsv::Document::Save ( const std::string &  pPath = std::string())
inline

Write Document data to file.

Parameters
pPathoptionally specifies the path where the CSV-file will be created (if not specified, the original path provided when creating or loading the Document data will be used).

◆ Save() [2/2]

void rapidcsv::Document::Save ( std::ostream &  pStream)
inline

Write Document data to stream.

Parameters
pStreamspecifies an output stream to write the data to.

◆ SetCell() [1/2]

template<typename T >
void rapidcsv::Document::SetCell ( const size_t  pColumnIdx,
const size_t  pRowIdx,
const T &  pCell 
)
inline

Set cell by index.

Parameters
pRowIdxzero-based row index.
pColumnIdxzero-based column index.
pCellcell data.

◆ SetCell() [2/2]

template<typename T >
void rapidcsv::Document::SetCell ( const std::string &  pColumnName,
const std::string &  pRowName,
const T &  pCell 
)
inline

Set cell by name.

Parameters
pColumnNamecolumn label name.
pRowNamerow label name.
pCellcell data.

◆ SetColumn() [1/2]

template<typename T >
void rapidcsv::Document::SetColumn ( const size_t  pColumnIdx,
const std::vector< T > &  pColumn 
)
inline

Set column by index.

Parameters
pColumnIdxzero-based column index.
pColumnvector of column data.

◆ SetColumn() [2/2]

template<typename T >
void rapidcsv::Document::SetColumn ( const std::string &  pColumnName,
const std::vector< T > &  pColumn 
)
inline

Set column by name.

Parameters
pColumnNamecolumn label name.
pColumnvector of column data.

◆ SetColumnName()

void rapidcsv::Document::SetColumnName ( size_t  pColumnIdx,
const std::string &  pColumnName 
)
inline

Set column name.

Parameters
pColumnIdxzero-based column index.
pColumnNamecolumn name.

◆ SetRow() [1/2]

template<typename T >
void rapidcsv::Document::SetRow ( const size_t  pRowIdx,
const std::vector< T > &  pRow 
)
inline

Set row by index.

Parameters
pRowIdxzero-based row index.
pRowvector of row data.

◆ SetRow() [2/2]

template<typename T >
void rapidcsv::Document::SetRow ( const std::string &  pRowName,
const std::vector< T > &  pRow 
)
inline

Set row by name.

Parameters
pRowNamerow label name.
pRowvector of row data.

◆ SetRowName()

void rapidcsv::Document::SetRowName ( size_t  pRowIdx,
const std::string &  pRowName 
)
inline

Set row name.

Parameters
pRowIdxzero-based row index.
pRowNamerow name.

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