|
GEGELATI
|
#include <arrayWrapper.h>
Public Member Functions | |
| ArrayWrapper (size_t size=8, std::vector< T > *ptr=nullptr) | |
| Constructor for the ArrayWrapper class. | |
| virtual | ~ArrayWrapper ()=default |
| Default destructor. | |
| ArrayWrapper (const ArrayWrapper< T > &other)=default | |
| Default copy constructor. | |
| ArrayWrapper (const DataHandler &other, size_t size) | |
| Copy constructor for DataHandler. | |
| virtual DataHandler * | clone () const override |
| Return a PrimitiveTypeArray<T> where all data of the ArrayWrapper has been copied. | |
| virtual bool | canHandle (const std::type_info &type) const override |
| Inherited from DataHandler. | |
| virtual size_t | getAddressSpace (const std::type_info &type) const override |
| Inherited from DataHandler. | |
| virtual size_t | getLargestAddressSpace (void) const override |
| Inherited from DataHandler. | |
| void | invalidateCachedHash () |
| Invalidate the hash of the container. | |
| void | resetData () override |
| Inherited from DataHandler. Does nothing. | |
| void | setPointer (std::vector< T > *ptr) |
| Set the pointer of the ArrayWrapper. | |
| virtual UntypedSharedPtr | getDataAt (const std::type_info &type, const size_t address) const override |
| Inherited from DataHandler. | |
| virtual std::vector< size_t > | getAddressesAccessed (const std::type_info &type, const size_t address) const override |
| Inherited from DataHandler. | |
| virtual const std::type_info & | getNativeType () const override |
| Inherited from DataHandler. | |
| virtual std::vector< size_t > | getDimensionsSize () const override |
| Inherited from DataHandler. | |
Public Member Functions inherited from Data::DataHandler | |
| DataHandler () | |
| Default constructor of the DataHandler class. | |
| virtual | ~DataHandler ()=default |
| Default destructor. | |
| DataHandler (const DataHandler &other)=default | |
| Default copy constructor. | |
| size_t | getId () const |
| Get the ID of the DataHandler. | |
| virtual size_t | getHash () const |
| Get the current value of the hash for this DataHandler. | |
| uint64_t | scaleLocation (const uint64_t rawLocation, const std::type_info &type) const |
| Scale a location from the Environment largestAddressSpace to the largestAddressSpace of the dataHandler, for the given data type. | |
Protected Member Functions | |
| void | checkAddressAndType (const std::type_info &type, const size_t &address) const |
| virtual size_t | updateHash () const override |
| Implementation of the updateHash method. | |
Protected Attributes | |
| const size_t | nbElements |
| Number of elements contained pointer vector. | |
| std::vector< T > * | containerPtr |
| Pointer to the array containing the data accessed through the ArrayWrapper. | |
Protected Attributes inherited from Data::DataHandler | |
| const size_t | id |
| Identifier of each DataHandler. | |
| size_t | cachedHash |
| Cached value returned by the getHash() function. | |
| bool | invalidCachedHash |
| Boolean value indicating whether the current cachedValue is valid, or not. | |
Additional Inherited Members | |
Static Protected Attributes inherited from Data::DataHandler | |
| static size_t | count = 0 |
| Static count used to initialize the id of each DataHandler. | |
DataHandler for manipulating arrays of primitive data type.
Contrary to the PrimitiveTypeArray, the ArrayWrapper does not contain its data, but possesses a pointer to them.
Every time the data associated to the pointer is modified, the invalidateCachedHash method should be called.
In addition to native data types T, this DataHandler can also provide the following composite data type:
|
inline |
Constructor for the ArrayWrapper class.
| [in] | size | the fixed number of elements of primitive type T contained in the ArrayWrapper. |
| [in] | ptr | the pointer managed by the ArrayWrapper. |
| std::domain_error | in case the given non-null pointer points to a vector that does not the expected size. |
| Data::ArrayWrapper< T >::ArrayWrapper | ( | const DataHandler & | other, |
| size_t | size ) |
Copy constructor for DataHandler.
This constructor ensures the id of the other DataHandler is copied and initialize the ArrayWrapper with a null pointer.
| [in] | other | Other DataHandler whose id is copied. |
| [in] | size | Number of element of the created ArrayWrapper. |
|
overridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
|
protected |
Check whether the given type of data can be accessed at the given address. Throws exception otherwise.
| [in] | type | the std::type_info of data. |
| [in] | address | the location of the data. |
| std::invalid_argument | if the given data type is not provided by the DataHandler. |
| std::out_of_range | if the given address is invalid for the given data type. |
|
inlineoverridevirtual |
Return a PrimitiveTypeArray<T> where all data of the ArrayWrapper has been copied.
Implements Data::DataHandler.
Reimplemented in Data::Array2DWrapper< T >, Data::PrimitiveTypeArray< T >, Data::PrimitiveTypeArray< Constant >, Data::PrimitiveTypeArray< double >, and Data::PrimitiveTypeArray2D< T >.
|
overridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
Reimplemented in Data::Array2DWrapper< T >.
|
overridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
Reimplemented in Data::Array2DWrapper< T >.
|
inlineoverridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
Reimplemented in Data::Array2DWrapper< T >.
|
overridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
Reimplemented in Data::Array2DWrapper< T >.
|
overridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
|
overridevirtual |
Inherited from DataHandler.
Implements Data::DataHandler.
| void Data::ArrayWrapper< T >::invalidateCachedHash | ( | ) |
Invalidate the hash of the container.
Each time the data pointed by the ArrayWrapper is modified, this method should be called to ensure that the hash value of the DataHandler is properly updated.
|
overridevirtual |
Inherited from DataHandler. Does nothing.
Implements Data::DataHandler.
Reimplemented in Data::PrimitiveTypeArray< T >, Data::PrimitiveTypeArray< Constant >, Data::PrimitiveTypeArray< double >, and Data::PrimitiveTypeArray2D< T >.
Set the pointer of the ArrayWrapper.
This method automatically invalidates the cachedHash.
| [in] | ptr | the new pointer managed by the ArrayWrapper. |
| std::domain_error | in case the given non-null pointer points to a vector that does not have the same size as defined when constructing the ArrayWrapper. |
|
inlineoverrideprotectedvirtual |
Implementation of the updateHash method.
Implements Data::DataHandler.
Number of elements contained pointer vector.
Although this may seem redundant with the containerPtr->size() method, this attribute is here to make it possible to check whether the size of the data vector was modified throughout the lifetime of the ArrayWrapper. (Which should not be possible.)