|
matio-cpp v0.3.0
A C++ wrapper of the matio library, with memory ownership handling, to read and write .mat files.
|
StructArray is a particular type of Variable specialized for array of structs. More...
#include <matioCpp/StructArray.h>
Inheritance diagram for matioCpp::StructArray:Public Types | |
| using | index_type = size_t |
| using | Element = StructArrayElement< false > |
| The type used for indices. | |
| using | ConstElement = StructArrayElement< true > |
| Non-const version of StructArrayElement. | |
Public Member Functions | |
| StructArray () | |
| Const version of Element. | |
| StructArray (const std::string &name) | |
| Constructor. | |
| StructArray (const std::string &name, const std::vector< index_type > &dimensions) | |
| Constructor. | |
| StructArray (const std::string &name, const std::vector< index_type > &dimensions, const std::vector< matioCpp::Struct > &elements) | |
| Constructor. | |
| StructArray (const std::string &name, const std::vector< index_type > &dimensions, const std::vector< std::string > &fields) | |
| Constructor. | |
| StructArray (const StructArray &other) | |
| Copy constructor. | |
| StructArray (StructArray &&other) | |
| Move constructor. | |
| StructArray (const MatvarHandler &handler) | |
| Constructor to share the data ownership of another variable. | |
| ~StructArray () | |
| Destructor. | |
| StructArray & | operator= (const StructArray &other) |
| Assignement operator (copy) from another StructArray. | |
| StructArray & | operator= (StructArray &&other) |
| Assignement operator (move) from another StructArray. | |
| bool | fromVectorOfStructs (const std::vector< index_type > &dimensions, const std::vector< matioCpp::Struct > &elements) |
| Set from a vector of Variables. | |
| index_type | rawIndexFromIndices (const std::vector< index_type > &el) const |
| Get the linear index corresponding to the provided indices. | |
| bool | indicesFromRawIndex (size_t rawIndex, std::vector< index_type > &el) const |
| Get the indices given the raw index. | |
| bool | setName (const std::string &newName) |
| Change the name of the Variable. | |
| void | resize (const std::vector< index_type > &newDimensions) |
| Resize the array. | |
| index_type | numberOfElements () const |
| Get the total number of elements in the array. | |
| index_type | numberOfFields () const |
| Get the total number of fields in the struct. | |
| std::vector< std::string > | fields () const |
| Get the list of fields. | |
| void | clear () |
| Clear the struct array. | |
| bool | isFieldExisting (const std::string &field) const |
| Check if a field is existing It performs a linear search over the output of fields(). | |
| size_t | getFieldIndex (const std::string &field) const |
| Get the index of the specified field in the struct by performing a linear search. | |
| bool | addField (const std::string &newField) |
| Add a new field to all the structs. | |
| bool | addFields (const std::vector< std::string > &newFields) |
| Add the fields to all the structs. | |
| bool | setElement (const std::vector< index_type > &el, const matioCpp::Struct &newValue) |
| Set the element at the specified position. | |
| bool | setElement (index_type el, const matioCpp::Struct &newValue) |
| Set the element at the specified position. | |
| Element | operator() (const std::vector< index_type > &el) |
| Access specified element. | |
| ConstElement | operator() (const std::vector< index_type > &el) const |
| Access specified element. | |
| Element | operator() (index_type el) |
| Access specified element. | |
| ConstElement | operator() (index_type el) const |
| Access specified element. | |
| Element | operator[] (const std::vector< index_type > &el) |
| Access specified element. | |
| ConstElement | operator[] (const std::vector< index_type > &el) const |
| Access specified element. | |
| Element | operator[] (index_type el) |
| Access specified element. | |
| ConstElement | operator[] (index_type el) const |
| Access specified element. | |
Public Member Functions inherited from matioCpp::Variable | |
| Variable () | |
| Default constructor. | |
| Variable (const matvar_t *inputVar) | |
| Constructor from an existing matvar_t pointer. | |
| Variable (const Variable &other) | |
| Copy constructor. | |
| Variable (Variable &&other) | |
| Move constructor. | |
| Variable (const MatvarHandler &handler) | |
| Constructor to share the data ownership of another variable. | |
| ~Variable () | |
| Destructor. | |
| Variable & | operator= (const Variable &other) |
| Copy assignement. | |
| Variable & | operator= (Variable &&other) |
| Move assignement. | |
| bool | fromMatio (const matvar_t *inputVar) |
| Set this variable from an existing matio variable. | |
| bool | fromOther (const Variable &other) |
| Set this variable from another variable. | |
| bool | fromOther (Variable &&other) |
| Set this variable from another variable. | |
| const matvar_t * | toMatio () const |
| Convert this Variable to a matio variable. | |
| matvar_t * | toMatio () |
| Convert this Variable to a matio variable. | |
| std::string | name () const |
| Get the name of the Variable. | |
| matioCpp::VariableType | variableType () const |
| Get the VariableType. | |
| matioCpp::ValueType | valueType () const |
| Get the ValueType. | |
| bool | isComplex () const |
| Get if the variable is complex. | |
| matioCpp::Span< const size_t > | dimensions () const |
| Get the dimensions of this object. | |
| bool | isValid () const |
| Check if the variable is valid. | |
| matioCpp::Variable | operator[] (const std::string &el) |
| Access field with specific name. | |
| const matioCpp::Variable | operator[] (const std::string &el) const |
| Access field with specific name. | |
| template<typename T > | |
| matioCpp::Element< T > | asElement () |
| Cast the variable as a Element. | |
| template<typename T > | |
| const matioCpp::Element< T > | asElement () const |
| Cast the variable as a const Element. | |
| template<typename T > | |
| matioCpp::Vector< T > | asVector () |
| Cast the variable as a Vector. | |
| template<typename T > | |
| const matioCpp::Vector< T > | asVector () const |
| Cast the variable as a const Vector. | |
| matioCpp::String | asString () |
| Cast the variable as a String. | |
| const matioCpp::String | asString () const |
| Cast the variable as a const String. | |
| matioCpp::String16 | asString16 () |
| Cast the variable as a String16. | |
| const matioCpp::String16 | asString16 () const |
| Cast the variable as a const String16. | |
| matioCpp::String32 | asString32 () |
| Cast the variable as a String32. | |
| const matioCpp::String32 | asString32 () const |
| Cast the variable as a const String32. | |
| template<typename T > | |
| matioCpp::MultiDimensionalArray< T > | asMultiDimensionalArray () |
| Cast the variable as a MultiDimensionalArray. | |
| template<typename T > | |
| const matioCpp::MultiDimensionalArray< T > | asMultiDimensionalArray () const |
| Cast the variable as a const MultiDimensionalArray. | |
| matioCpp::CellArray | asCellArray () |
| Cast the variable as a CellArray. | |
| const matioCpp::CellArray | asCellArray () const |
| Cast the variable as a const CellArray. | |
| matioCpp::Struct | asStruct () |
| Cast the variable as a Struct. | |
| const matioCpp::Struct | asStruct () const |
| Cast the variable as a const Struct. | |
| matioCpp::StructArray | asStructArray () |
| Cast the variable as a StructArray. | |
| const matioCpp::StructArray | asStructArray () const |
| Cast the variable as a const StructArray. | |
Friends | |
| template<bool > | |
| class | StructArrayElement |
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. | |
| 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. | |
| template<typename T > | |
| bool | initializeComplexVector (const std::string &name, const Span< T > realInputVector, const Span< T > imaginaryInputVector) |
| Initialize a complex vector. | |
| bool | changeName (const std::string &newName) |
| Change the name of the variable. | |
| size_t | getArrayNumberOfElements () const |
| Get the total number of elements in the array. | |
| bool | setCellElement (size_t linearIndex, const Variable &newValue) |
| Set a cell element at a specified linear position. | |
| Variable | getCellElement (size_t linearIndex) |
| Get a cell element at a specified linear position. | |
| const Variable | getCellElement (size_t linearIndex) const |
| Get a cell element at a specified linear position. | |
| size_t | getStructNumberOfFields () const |
| Get the total number of fields in the variable, considered as a struct. | |
| char *const * | getStructFields () const |
| Get the list of fields in the variable, considered as a struct. | |
| bool | getStructFieldIndex (const std::string &field, size_t &index) const |
| Get the index of the specified field in the variable, considered as a struct. | |
| bool | setStructField (size_t index, const Variable &newValue, size_t structPositionInArray=0) |
| Set the field of the struct at the specified position. | |
| bool | addStructField (const std::string &newField) |
| Add a new field to the variable, considered as a struct. | |
| bool | setStructField (const std::string &field, const Variable &newValue, size_t structPositionInArray=0) |
| Set the field of the struct given the newValue name. | |
| Variable | getStructField (size_t index, size_t structPositionInArray=0) |
| Get the specified field in the variable, considered as a struct. | |
| const Variable | getStructField (size_t index, size_t structPositionInArray=0) const |
| Get the specified field in the variable, considered as a struct. | |
| Struct | getStructArrayElement (size_t linearIndex) |
| Get an element of the variable, considered as a StructArray. | |
| const Struct | getStructArrayElement (size_t linearIndex) const |
| Get an element of the variable, considered as a StructArray. | |
StructArray is a particular type of Variable specialized for array of structs.
Each element of the array is a Struct and they all share the same fields.
Definition at line 20 of file StructArray.h.
Non-const version of StructArrayElement.
Definition at line 41 of file StructArray.h.
The type used for indices.
Definition at line 39 of file StructArray.h.
| using matioCpp::StructArray::index_type = size_t |
Definition at line 37 of file StructArray.h.
| matioCpp::StructArray::StructArray | ( | ) |
Const version of Element.
Default Constructor
Definition at line 29 of file StructArray.cpp.
References matioCpp::StructArray, and matioCpp::VARIABLE.
| matioCpp::StructArray::StructArray | ( | const std::string & | name | ) |
Constructor.
| name | The name of the StructArray |
Definition at line 38 of file StructArray.cpp.
References matioCpp::StructArray, and matioCpp::VARIABLE.
| matioCpp::StructArray::StructArray | ( | const std::string & | name, |
| const std::vector< index_type > & | dimensions | ||
| ) |
Constructor.
| name | The name of the StructArray |
| dimensions | The dimensions of the StructArray |
Definition at line 47 of file StructArray.cpp.
References std::endl(), matioCpp::StructArray, and matioCpp::VARIABLE.
| matioCpp::StructArray::StructArray | ( | const std::string & | name, |
| const std::vector< index_type > & | dimensions, | ||
| const std::vector< matioCpp::Struct > & | elements | ||
| ) |
Constructor.
| name | The name of the StructArray |
| dimensions | The dimensions of the StructArray |
| elements | The elements to be added to the StructArray (they are copied) |
Definition at line 64 of file StructArray.cpp.
References matioCpp::MultiDimensionalArray< T >::data(), std::endl(), matioCpp::MatvarHandler::GetMatvarDuplicate(), std::vector< T >::size(), matioCpp::StructArray, and matioCpp::VARIABLE.
| matioCpp::StructArray::StructArray | ( | const std::string & | name, |
| const std::vector< index_type > & | dimensions, | ||
| const std::vector< std::string > & | fields | ||
| ) |
Constructor.
| name | The name of the StructArray |
| dimensions | The dimensions of the StructArray |
| fields | The fields to be added to the StructArray |
Definition at line 147 of file StructArray.cpp.
References std::endl(), matioCpp::StructArray, and matioCpp::VARIABLE.
| matioCpp::StructArray::StructArray | ( | const StructArray & | other | ) |
Copy constructor.
Definition at line 169 of file StructArray.cpp.
| matioCpp::StructArray::StructArray | ( | matioCpp::StructArray && | other | ) |
Move constructor.
Definition at line 174 of file StructArray.cpp.
| matioCpp::StructArray::StructArray | ( | 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 179 of file StructArray.cpp.
References matioCpp::Variable::initializeVariable(), matioCpp::StructArray, matioCpp::Variable::valueType(), matioCpp::VARIABLE, and matioCpp::Variable::variableType().
| matioCpp::StructArray::~StructArray | ( | ) |
Destructor.
Definition at line 193 of file StructArray.cpp.
| bool matioCpp::StructArray::addField | ( | const std::string & | newField | ) |
Add a new field to all the structs.
| newField | The new field |
Definition at line 385 of file StructArray.cpp.
References std::endl().
| bool matioCpp::StructArray::addFields | ( | const std::vector< std::string > & | newFields | ) |
Add the fields to all the structs.
| newFields | The new fields to add |
Definition at line 394 of file StructArray.cpp.
| void matioCpp::StructArray::clear | ( | ) |
| std::vector< std::string > matioCpp::StructArray::fields | ( | ) | const |
| bool matioCpp::StructArray::fromVectorOfStructs | ( | const std::vector< index_type > & | dimensions, |
| const std::vector< matioCpp::Struct > & | elements | ||
| ) |
Set from a vector of Variables.
| dimensions | The input dimensions |
| elements | The elements to be set. |
Definition at line 210 of file StructArray.cpp.
References matioCpp::MultiDimensionalArray< T >::data(), std::endl(), matioCpp::MatvarHandler::GetMatvarDuplicate(), std::vector< T >::size(), matioCpp::StructArray, and matioCpp::VARIABLE.
| size_t matioCpp::StructArray::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 378 of file StructArray.cpp.
| bool matioCpp::StructArray::indicesFromRawIndex | ( | size_t | rawIndex, |
| std::vector< index_type > & | el | ||
| ) | const |
Get the indices given the raw index.
| rawIndex | The input raw index from which to compute the indices |
| el | The output indices |
Definition at line 297 of file StructArray.cpp.
References std::endl(), and matioCpp::MultiDimensionalArray< T >::resize().
| bool matioCpp::StructArray::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 372 of file StructArray.cpp.
| matioCpp::StructArray::index_type matioCpp::StructArray::numberOfElements | ( | ) | const |
Get the total number of elements in the array.
Definition at line 340 of file StructArray.cpp.
| matioCpp::StructArray::index_type matioCpp::StructArray::numberOfFields | ( | ) | const |
Get the total number of fields in the struct.
Definition at line 345 of file StructArray.cpp.
| matioCpp::StructArray::Element matioCpp::StructArray::operator() | ( | const std::vector< index_type > & | el | ) |
Access specified element.
| el | The element to be accessed. |
Definition at line 444 of file StructArray.cpp.
| matioCpp::StructArray::ConstElement matioCpp::StructArray::operator() | ( | const std::vector< index_type > & | el | ) | const |
Access specified element.
| el | The element to be accessed. |
Definition at line 450 of file StructArray.cpp.
| matioCpp::StructArray::Element matioCpp::StructArray::operator() | ( | index_type | el | ) |
Access specified element.
| el | The element to be accessed (raw index). |
Definition at line 456 of file StructArray.cpp.
| matioCpp::StructArray::ConstElement matioCpp::StructArray::operator() | ( | index_type | el | ) | const |
Access specified element.
| el | The element to be accessed (raw index). |
Definition at line 462 of file StructArray.cpp.
| matioCpp::StructArray & matioCpp::StructArray::operator= | ( | const StructArray & | other | ) |
Assignement operator (copy) from another StructArray.
| other | The other StructArray. |
Definition at line 198 of file StructArray.cpp.
| matioCpp::StructArray & matioCpp::StructArray::operator= | ( | matioCpp::StructArray && | other | ) |
Assignement operator (move) from another StructArray.
| other | The other StructArray. |
Definition at line 204 of file StructArray.cpp.
| matioCpp::StructArray::Element matioCpp::StructArray::operator[] | ( | const std::vector< index_type > & | el | ) |
Access specified element.
| el | The element to be accessed. |
Definition at line 468 of file StructArray.cpp.
| matioCpp::StructArray::ConstElement matioCpp::StructArray::operator[] | ( | const std::vector< index_type > & | el | ) | const |
Access specified element.
| el | The element to be accessed. |
Definition at line 474 of file StructArray.cpp.
| matioCpp::StructArray::Element matioCpp::StructArray::operator[] | ( | index_type | el | ) |
Access specified element.
| el | The element to be accessed. |
Definition at line 480 of file StructArray.cpp.
| matioCpp::StructArray::ConstElement matioCpp::StructArray::operator[] | ( | index_type | el | ) | const |
Access specified element.
| el | The element to be accessed. |
Definition at line 486 of file StructArray.cpp.
| matioCpp::StructArray::index_type matioCpp::StructArray::rawIndexFromIndices | ( | const std::vector< index_type > & | el | ) | const |
Get the linear index corresponding to the provided indices.
| el | The desider element |
Since the variables are stored internally in column-major, an element (i,j,k,l,..) of an array of dimensions (n,m,p,k,...) corresponds to a row index equal to i + j*n + k*n*m + l*n*m*p +...
Definition at line 278 of file StructArray.cpp.
| void matioCpp::StructArray::resize | ( | const std::vector< index_type > & | newDimensions | ) |
Resize the array.
| newDimensions | The new dimensions. |
Definition at line 334 of file StructArray.cpp.
References std::move().
| bool matioCpp::StructArray::setElement | ( | const std::vector< index_type > & | el, |
| const matioCpp::Struct & | newValue | ||
| ) |
Set the element at the specified position.
| el | The indices of the specified element |
| newValue | The Struct that will be copied in the specified location |
Definition at line 406 of file StructArray.cpp.
| bool matioCpp::StructArray::setElement | ( | index_type | el, |
| const matioCpp::Struct & | newValue | ||
| ) |
Set the element at the specified position.
| el | The raw index of the specified element |
| newValue | The Struct that will be copied in the specified location |
Definition at line 411 of file StructArray.cpp.
References std::endl(), and matioCpp::Variable::getStructFields().
| bool matioCpp::StructArray::setName | ( | const std::string & | newName | ) |
Change the name of the Variable.
| newName | The new name |
Definition at line 329 of file StructArray.cpp.
|
friend |
Definition at line 33 of file StructArray.h.