matio-cpp
v0.2.5
A C++ wrapper of the matio library, with memory ownership handling, to read and write .mat files.
|
Struct is a particular type of Variable specialized for structs. More...
#include <matioCpp/Struct.h>
Public Types | |
using | index_type = size_t |
Public Member Functions | |
Struct () | |
The type used for indices. More... | |
Struct (const std::string &name) | |
Constructor. More... | |
Struct (const std::string &name, const std::vector< Variable > &elements) | |
Constructor. More... | |
Struct (const Struct &other) | |
Copy constructor. More... | |
Struct (Struct &&other) | |
Move constructor. More... | |
Struct (const MatvarHandler &handler) | |
Constructor to share the data ownership of another variable. More... | |
~Struct () | |
Destructor. More... | |
Struct & | operator= (const Struct &other) |
Assignement operator (copy) from another Struct. More... | |
Struct & | operator= (Struct &&other) |
Assignement operator (move) from another Struct. More... | |
bool | fromVectorOfVariables (const std::vector< Variable > &elements) |
Set from a vector of Variables. More... | |
bool | setName (const std::string &newName) |
Change the name of the Struct. More... | |
index_type | numberOfFields () const |
Get the total number of fields in the struct. More... | |
std::vector< std::string > | fields () const |
Get the list of fields. More... | |
void | clear () |
Clear the struct. More... | |
bool | isFieldExisting (const std::string &field) const |
Check if a field is existing It performs a linear search over the output of fields(). More... | |
size_t | getFieldIndex (const std::string &field) const |
Get the index of the specified field in the struct by performing a linear search. More... | |
bool | setField (index_type index, const Variable &newValue) |
Set the field at the specified position. More... | |
bool | setField (const std::string &field, const Variable &newValue) |
Set the given field to the newValue. More... | |
bool | setField (const Variable &newValue) |
Set the field given the newValue name. More... | |
matioCpp::Variable | operator() (index_type el) |
Access field at a specific index. More... | |
const matioCpp::Variable | operator() (index_type el) const |
Access field at a specific index. More... | |
matioCpp::Variable | operator() (const std::string &el) |
Access field at a specific index. More... | |
const matioCpp::Variable | operator() (const std::string &el) const |
Access field at a specific index. More... | |
matioCpp::Variable | operator[] (index_type el) |
Access field at a specific index. More... | |
const matioCpp::Variable | operator[] (index_type el) const |
Access field at a specific index. More... | |
matioCpp::Variable | operator[] (const std::string &el) |
Access field at a specific index. More... | |
const matioCpp::Variable | operator[] (const std::string &el) const |
Access field at a specific index. More... | |
Public Member Functions inherited from matioCpp::Variable | |
Variable () | |
Default constructor. More... | |
Variable (const matvar_t *inputVar) | |
Constructor from an existing matvar_t pointer. More... | |
Variable (const Variable &other) | |
Copy constructor. More... | |
Variable (Variable &&other) | |
Move constructor. More... | |
Variable (const MatvarHandler &handler) | |
Constructor to share the data ownership of another variable. More... | |
~Variable () | |
Destructor. More... | |
Variable & | operator= (const Variable &other) |
Copy assignement. More... | |
Variable & | operator= (Variable &&other) |
Move assignement. More... | |
bool | fromMatio (const matvar_t *inputVar) |
Set this variable from an existing matio variable. More... | |
bool | fromOther (const Variable &other) |
Set this variable from another variable. More... | |
bool | fromOther (Variable &&other) |
Set this variable from another variable. More... | |
const matvar_t * | toMatio () const |
Convert this Variable to a matio variable. More... | |
matvar_t * | toMatio () |
Convert this Variable to a matio variable. More... | |
std::string | name () const |
Get the name of the Variable. More... | |
matioCpp::VariableType | variableType () const |
Get the VariableType. More... | |
matioCpp::ValueType | valueType () const |
Get the ValueType. More... | |
bool | isComplex () const |
Get if the variable is complex. More... | |
matioCpp::Span< const size_t > | dimensions () const |
Get the dimensions of this object. More... | |
bool | isValid () const |
Check if the variable is valid. More... | |
template<typename T > | |
matioCpp::Element< T > | asElement () |
Cast the variable as a Element. More... | |
template<typename T > | |
const matioCpp::Element< T > | asElement () const |
Cast the variable as a const Element. More... | |
template<typename T > | |
matioCpp::Vector< T > | asVector () |
Cast the variable as a Vector. More... | |
template<typename T > | |
const matioCpp::Vector< T > | asVector () const |
Cast the variable as a const Vector. More... | |
matioCpp::String | asString () |
Cast the variable as a String. More... | |
const matioCpp::String | asString () const |
Cast the variable as a const String. More... | |
matioCpp::String16 | asString16 () |
Cast the variable as a String16. More... | |
const matioCpp::String16 | asString16 () const |
Cast the variable as a const String16. More... | |
matioCpp::String32 | asString32 () |
Cast the variable as a String32. More... | |
const matioCpp::String32 | asString32 () const |
Cast the variable as a const String32. More... | |
template<typename T > | |
matioCpp::MultiDimensionalArray< T > | asMultiDimensionalArray () |
Cast the variable as a MultiDimensionalArray. More... | |
template<typename T > | |
const matioCpp::MultiDimensionalArray< T > | asMultiDimensionalArray () const |
Cast the variable as a const MultiDimensionalArray. More... | |
matioCpp::CellArray | asCellArray () |
Cast the variable as a CellArray. More... | |
const matioCpp::CellArray | asCellArray () const |
Cast the variable as a const CellArray. More... | |
matioCpp::Struct | asStruct () |
Cast the variable as a Struct. More... | |
const matioCpp::Struct | asStruct () const |
Cast the variable as a const Struct. More... | |
matioCpp::StructArray | asStructArray () |
Cast the variable as a StructArray. More... | |
const matioCpp::StructArray | asStructArray () const |
Cast the variable as a const StructArray. More... | |
Friends | |
class | StructArray |
Additional Inherited Members | |
Protected Member Functions inherited from matioCpp::Variable | |
bool | initializeVariable (const std::string &name, const VariableType &variableType, const ValueType &valueType, matioCpp::Span< const size_t > dimensions, void *data) |
Initialize the variable. More... | |
bool | initializeComplexVariable (const std::string &name, const VariableType &variableType, const ValueType &valueType, matioCpp::Span< const size_t > dimensions, void *realData, void *imaginaryData) |
Initialize a complex variable. More... | |
template<typename T > | |
bool | initializeComplexVector (const std::string &name, const Span< T > realInputVector, const Span< T > imaginaryInputVector) |
Initialize a complex vector. More... | |
bool | changeName (const std::string &newName) |
Change the name of the variable. More... | |
size_t | getArrayNumberOfElements () const |
Get the total number of elements in the array. More... | |
bool | setCellElement (size_t linearIndex, const Variable &newValue) |
Set a cell element at a specified linear position. More... | |
Variable | getCellElement (size_t linearIndex) |
Get a cell element at a specified linear position. More... | |
const Variable | getCellElement (size_t linearIndex) const |
Get a cell element at a specified linear position. More... | |
size_t | getStructNumberOfFields () const |
Get the total number of fields in the variable, considered as a struct. More... | |
char *const * | getStructFields () const |
Get the list of fields in the variable, considered as a struct. More... | |
size_t | getStructFieldIndex (const std::string &field) const |
Get the index of the specified field in the variable, considered as a struct. More... | |
bool | setStructField (size_t index, const Variable &newValue, size_t structPositionInArray=0) |
Set the field of the struct at the specified position. More... | |
bool | addStructField (const std::string &newField) |
Add a new field to the variable, considered as a struct. More... | |
bool | setStructField (const std::string &field, const Variable &newValue, size_t structPositionInArray=0) |
Set the field of the struct given the newValue name. More... | |
Variable | getStructField (size_t index, size_t structPositionInArray=0) |
Get the specified field in the variable, considered as a struct. More... | |
const Variable | getStructField (size_t index, size_t structPositionInArray=0) const |
Get the specified field in the variable, considered as a struct. More... | |
Struct | getStructArrayElement (size_t linearIndex) |
Get an element of the variable, considered as a StructArray. More... | |
const Struct | getStructArrayElement (size_t linearIndex) const |
Get an element of the variable, considered as a StructArray. More... | |
using matioCpp::Struct::index_type = size_t |
matioCpp::Struct::Struct | ( | ) |
The type used for indices.
Default Constructor
Definition at line 29 of file Struct.cpp.
References matioCpp::Struct, and matioCpp::VARIABLE.
matioCpp::Struct::Struct | ( | const std::string & | name | ) |
Constructor.
name | The name of the Struct |
Definition at line 38 of file Struct.cpp.
References matioCpp::Struct, and matioCpp::VARIABLE.
matioCpp::Struct::Struct | ( | const std::string & | name, |
const std::vector< Variable > & | elements | ||
) |
Constructor.
name | The name of the Struct |
elements | The elements to be added to the Struct (they are copied) |
Definition at line 47 of file Struct.cpp.
References std::vector< T >::data(), std::endl(), matioCpp::MatvarHandler::GetMatvarDuplicate(), std::vector< T >::push_back(), std::vector< T >::size(), matioCpp::Struct, and matioCpp::VARIABLE.
matioCpp::Struct::Struct | ( | const Struct & | other | ) |
Copy constructor.
Definition at line 70 of file Struct.cpp.
matioCpp::Struct::Struct | ( | matioCpp::Struct && | other | ) |
Move constructor.
Definition at line 75 of file Struct.cpp.
matioCpp::Struct::Struct | ( | const MatvarHandler & | handler | ) |
Constructor to share the data ownership of another variable.
handler | The MatvarHandler handler to the matvar_t which has to be shared. |
Definition at line 80 of file Struct.cpp.
References matioCpp::MatvarHandler::get(), matioCpp::Variable::initializeVariable(), matioCpp::Struct, matioCpp::MatvarHandler::valueType(), matioCpp::VARIABLE, and matioCpp::MatvarHandler::variableType().
matioCpp::Struct::~Struct | ( | ) |
Destructor.
Definition at line 94 of file Struct.cpp.
void matioCpp::Struct::clear | ( | ) |
std::vector< std::string > matioCpp::Struct::fields | ( | ) | const |
Get the list of fields.
Definition at line 141 of file Struct.cpp.
References std::vector< T >::emplace_back(), and std::vector< T >::reserve().
bool matioCpp::Struct::fromVectorOfVariables | ( | const std::vector< Variable > & | elements | ) |
Set from a vector of Variables.
elements | The elements to be set. |
Definition at line 111 of file Struct.cpp.
References std::vector< T >::data(), std::endl(), matioCpp::MatvarHandler::GetMatvarDuplicate(), std::vector< T >::size(), matioCpp::Struct, and matioCpp::VARIABLE.
size_t matioCpp::Struct::getFieldIndex | ( | const std::string & | field | ) | const |
Get the index of the specified field in the struct by performing a linear search.
field | The field to search |
Definition at line 168 of file Struct.cpp.
bool matioCpp::Struct::isFieldExisting | ( | const std::string & | field | ) | const |
Check if a field is existing It performs a linear search over the output of fields().
Definition at line 163 of file Struct.cpp.
matioCpp::Struct::index_type matioCpp::Struct::numberOfFields | ( | ) | const |
Get the total number of fields in the struct.
Definition at line 136 of file Struct.cpp.
Referenced by matioCpp::StructArray::setElement().
matioCpp::Variable matioCpp::Struct::operator() | ( | const std::string & | el | ) |
Access field at a specific index.
el | The name of the field to be accessed. |
Definition at line 201 of file Struct.cpp.
const matioCpp::Variable matioCpp::Struct::operator() | ( | const std::string & | el | ) | const |
Access field at a specific index.
el | The name of the field to be accessed. |
Definition at line 208 of file Struct.cpp.
matioCpp::Variable matioCpp::Struct::operator() | ( | index_type | el | ) |
Access field at a specific index.
el | The index of the field to be accessed. |
Definition at line 189 of file Struct.cpp.
const matioCpp::Variable matioCpp::Struct::operator() | ( | index_type | el | ) | const |
Access field at a specific index.
el | The index of the field to be accessed. |
Definition at line 195 of file Struct.cpp.
matioCpp::Struct & matioCpp::Struct::operator= | ( | const Struct & | other | ) |
Assignement operator (copy) from another Struct.
other | The other Struct. |
Definition at line 99 of file Struct.cpp.
matioCpp::Struct & matioCpp::Struct::operator= | ( | matioCpp::Struct && | other | ) |
Assignement operator (move) from another Struct.
other | The other Struct. |
Definition at line 105 of file Struct.cpp.
matioCpp::Variable matioCpp::Struct::operator[] | ( | const std::string & | el | ) |
Access field at a specific index.
el | The name of the field to be accessed. |
Definition at line 227 of file Struct.cpp.
const matioCpp::Variable matioCpp::Struct::operator[] | ( | const std::string & | el | ) | const |
Access field at a specific index.
el | The name of the field to be accessed. |
Definition at line 234 of file Struct.cpp.
matioCpp::Variable matioCpp::Struct::operator[] | ( | index_type | el | ) |
Access field at a specific index.
el | The index of the field to be accessed. |
Definition at line 215 of file Struct.cpp.
const matioCpp::Variable matioCpp::Struct::operator[] | ( | index_type | el | ) | const |
Access field at a specific index.
el | The index of the field to be accessed. |
Definition at line 221 of file Struct.cpp.
bool matioCpp::Struct::setField | ( | const std::string & | field, |
const Variable & | newValue | ||
) |
Set the given field to the newValue.
field | The name of the field to set |
newValue | The Variable that will be copied in the specified field |
Definition at line 179 of file Struct.cpp.
bool matioCpp::Struct::setField | ( | const Variable & | newValue | ) |
Set the field given the newValue name.
newValue | The Variable that will be copied in the specified field |
Definition at line 184 of file Struct.cpp.
References matioCpp::Variable::name().
bool matioCpp::Struct::setField | ( | index_type | index, |
const Variable & | newValue | ||
) |
Set the field at the specified position.
index | The linear index of the specified field |
newValue | The Variable that will be copied in the specified location |
Definition at line 173 of file Struct.cpp.
Referenced by matioCpp::make_struct(), and matioCpp::make_variable().
bool matioCpp::Struct::setName | ( | const std::string & | newName | ) |
Change the name of the Struct.
newName | The new name |
Definition at line 131 of file Struct.cpp.
|
friend |