GEGELATI
|
DataHandler for 2D arrays of primitive types. More...
#include <array2DWrapper.h>
Public Member Functions | |
Array2DWrapper (const size_t w=2, const size_t h=4, std::vector< T > *ptr=nullptr) | |
Constructor for the 2D array. More... | |
Array2DWrapper (const Array2DWrapper &other)=default | |
Default copy constructor. | |
virtual | ~Array2DWrapper ()=default |
Default destructor. | |
virtual DataHandler * | clone () const override |
Return a PrimitiveTypeArray2D<T> where all data of the Array2DWrapper has been copied. More... | |
virtual size_t | getAddressSpace (const std::type_info &type) const override |
Inherited from DataHandler. More... | |
virtual std::vector< size_t > | getAddressesAccessed (const std::type_info &type, const size_t address) const override |
Inherited from DataHandler. More... | |
virtual UntypedSharedPtr | getDataAt (const std::type_info &type, const size_t address) const override |
Inherited from DataHandler. More... | |
virtual std::vector< size_t > | getDimensionsSize () const override |
Inherited from DataHandler. More... | |
![]() | |
ArrayWrapper (size_t size=8, std::vector< T > *ptr=nullptr) | |
Constructor for the ArrayWrapper class. More... | |
virtual | ~ArrayWrapper ()=default |
Default destructor. | |
ArrayWrapper (const ArrayWrapper< T > &other)=default | |
Default copy constructor. | |
virtual DataHandler * | clone () const override |
Return a PrimitiveTypeArray<T> where all data of the ArrayWrapper has been copied. More... | |
virtual bool | canHandle (const std::type_info &type) const override |
Inherited from DataHandler. More... | |
virtual size_t | getAddressSpace (const std::type_info &type) const override |
Inherited from DataHandler. More... | |
virtual size_t | getLargestAddressSpace (void) const override |
Inherited from DataHandler. More... | |
void | invalidateCachedHash () |
Invalidate the hash of the container. More... | |
void | resetData () override |
Inherited from DataHandler. Does nothing. More... | |
void | setPointer (std::vector< T > *ptr) |
Set the pointer of the ArrayWrapper. More... | |
virtual UntypedSharedPtr | getDataAt (const std::type_info &type, const size_t address) const override |
Inherited from DataHandler. More... | |
virtual std::vector< size_t > | getAddressesAccessed (const std::type_info &type, const size_t address) const override |
Inherited from DataHandler. More... | |
virtual const std::type_info & | getNativeType () const override |
Inherited from DataHandler. More... | |
virtual std::vector< size_t > | getDimensionsSize () const override |
Inherited from DataHandler. More... | |
![]() | |
DataHandler () | |
Default constructor of the DataHandler class. | |
virtual | ~DataHandler ()=default |
Default destructor. | |
DataHandler (const DataHandler &other)=default | |
Default copy constructor. | |
virtual DataHandler * | clone () const =0 |
Return a copy of the DataHandler (with all its content). More... | |
size_t | getId () const |
Get the ID of the DataHandler. More... | |
size_t | getHash () const |
Get the current value of the hash for this DataHandler. More... | |
virtual bool | canHandle (const std::type_info &type) const =0 |
Check a given DataHandler can handle data for the given data type. More... | |
virtual size_t | getAddressSpace (const std::type_info &type) const =0 |
Get the getAddressSpace size for the given data type. More... | |
virtual size_t | getLargestAddressSpace () const =0 |
Get the largest AddressSpace for all data types handled by the DataHandler. More... | |
virtual void | resetData ()=0 |
Generic method for DataHandler to reset their data. More... | |
virtual UntypedSharedPtr | getDataAt (const std::type_info &type, const size_t address) const =0 |
Get data of the given type, from the given address. More... | |
virtual std::vector< size_t > | getAddressesAccessed (const std::type_info &type, const size_t address) const =0 |
Get the set of addresses actually used when getting the given type of data, at the given address. More... | |
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. More... | |
virtual const std::type_info & | getNativeType () const =0 |
Function returning the native type of the DataHandler. More... | |
virtual std::vector< size_t > | getDimensionsSize () const =0 |
Give the size of each dimension (if any) of the DataHandler. More... | |
Protected Member Functions | |
size_t | getAddressSpace (const std::type_info &type, size_t *dim1, size_t *dim2) const |
Utility function for the class. More... | |
![]() | |
void | checkAddressAndType (const std::type_info &type, const size_t &address) const |
virtual size_t | updateHash () const override |
Implementation of the updateHash method. More... | |
virtual size_t | updateHash () const =0 |
Update the cachedHash value. More... | |
Protected Attributes | |
size_t | width |
Number of columns of the 2D array. | |
size_t | height |
Number of lines of the 2D array. | |
![]() | |
const size_t | nbElements |
Number of elements contained pointer vector. More... | |
std::vector< T > * | containerPtr |
Pointer to the array containing the data accessed through the ArrayWrapper. | |
![]() | |
const size_t | id |
Identifier of each DataHandler. More... | |
size_t | cachedHash |
Cached value returned by the getHash() function. More... | |
bool | invalidCachedHash |
Boolean value indicating whether the current cachedValue is valid, or not. More... | |
Additional Inherited Members | |
![]() | |
static size_t | count = 0 |
Static count used to initialize the id of each DataHandler. More... | |
DataHandler for 2D arrays of primitive types.
This specialization of the ArrayWrapper template class provides the possibility to get data with the type:
It is important to note that only spatially coherent values will be returned when arrays are requested. For example, when requesting a 1D array of N pixels, the returned pixels will always be taken from a single line of pixels, and will never comprise the last pixel from a line i, and the first pixels from line i+1. This means that the addressable space for arrays will be less than a 1D ArrayWrapper with the same number of nbElements.
Like with the ArrayWrapper, every time the data associated to the pointer is modified, the invalidateCachedHash method should be called.
|
inline |
Constructor for the 2D array.
The size of the underlying ArrayWrapper will be $nbElements = h*w$.
[in] | w | The width of the 2D array. |
[in] | h | The height of the 2D array. |
[in] | ptr | the pointer managed by the Array2DWrapper. |
|
overridevirtual |
Return a PrimitiveTypeArray2D<T> where all data of the Array2DWrapper has been copied.
Reimplemented from Data::ArrayWrapper< T >.
Reimplemented in Data::PrimitiveTypeArray2D< T >.
|
overridevirtual |
Inherited from DataHandler.
Reimplemented from Data::ArrayWrapper< T >.
|
overridevirtual |
Inherited from DataHandler.
Reimplemented from Data::ArrayWrapper< T >.
|
protected |
Utility function for the class.
This method implements the getAddressSpace method, with additional arguments that are used to return the number of array dimensions of the requested type.
[in] | type | The requested type_info. |
[out] | dim1 | Size of the 1st dimension (if any). |
[out] | dim2 | Size of the 2st dimension (if any). |
|
overridevirtual |
Inherited from DataHandler.
Reimplemented from Data::ArrayWrapper< T >.
|
overridevirtual |
Inherited from DataHandler.
Reimplemented from Data::ArrayWrapper< T >.