N-dimensional array class; each array has a set of dimensions, a data type, pointer to data, and optional attributes.
More...
#include <NDArray.h>
|
| NDArray () |
| NDArray constructor, no parameters.
|
|
| NDArray (int ndims, size_t *dims, NDDataType_t dataType, size_t dataSize, void *pData) |
|
virtual | ~NDArray () |
| NDArray destructor Frees the data array, deletes all attributes, frees the attribute list and destroys the mutex.
|
|
int | initDimension (NDDimension_t *pDimension, size_t size) |
| Initializes the dimension structure to size=size, binning=1, reverse=0, offset=0.
|
|
int | getInfo (NDArrayInfo_t *pInfo) |
| Convenience method returns information about an NDArray, including the total number of elements, the number of bytes per element, and the total number of bytes in the array.
|
|
int | reserve () |
| Calls NDArrayPool::reserve() for this NDArray object; increases the reference count for this array.
|
|
int | release () |
| Calls NDArrayPool::release() for this object; decreases the reference count for this array.
|
|
int | getReferenceCount () const |
|
int | report (FILE *fp, int details) |
| Reports on the properties of the array.
|
|
|
class NDArrayPool * | pNDArrayPool |
| The NDArrayPool object that created this array.
|
|
class asynNDArrayDriver * | pDriver |
| The asynNDArrayDriver that created this array.
|
|
int | uniqueId |
| A number that must be unique for all NDArrays produced by a driver after is has started.
|
|
double | timeStamp |
| The time stamp in seconds for this array; seconds since EPICS epoch (00:00:00 UTC, January 1, 1990) is recommended, but some drivers may use a different start time.
|
|
epicsTimeStamp | epicsTS |
| The epicsTimeStamp; this is set with pasynManager->updateTimeStamp(), and can come from a user-defined timestamp source.
|
|
int | ndims |
| The number of dimensions in this array; minimum=1.
|
|
NDDimension_t | dims [ND_ARRAY_MAX_DIMS] |
| Array of dimension sizes for this array; first ndims values are meaningful.
|
|
NDDataType_t | dataType |
| Data type for this array.
|
|
size_t | dataSize |
| Data size for this array; actual amount of memory allocated for *pData, may be more than required to hold the array.
|
|
void * | pData |
| Pointer to the array data.
|
|
NDAttributeList * | pAttributeList |
| Linked list of attributes.
|
|
Codec_t | codec |
| Definition of codec used to compress the data.
|
|
size_t | compressedSize |
| Size of the compressed data.
|
|
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data, and optional attributes.
An NDArray also has a uniqueId and timeStamp that to identify it. NDArray objects can be allocated by an NDArrayPool object, which maintains a free list of NDArrays for efficient memory management.
◆ NDArray() [1/2]
NDArray constructor, no parameters.
Initializes all fields to 0. Creates the attribute linked list and linked list mutex.
◆ NDArray() [2/2]
NDArray::NDArray |
( |
int |
ndims, |
|
|
size_t * |
dims, |
|
|
NDDataType_t |
dataType, |
|
|
size_t |
dataSize, |
|
|
void * |
pData |
|
) |
| |
◆ ~NDArray()
NDArray destructor Frees the data array, deletes all attributes, frees the attribute list and destroys the mutex.
◆ computeArrayInfo()
Convenience method computes the total the total number of bytes in the array.
◆ getInfo()
Convenience method returns information about an NDArray, including the total number of elements, the number of bytes per element, and the total number of bytes in the array.
- Parameters
-
[out] | pInfo | Pointer to an NDArrayInfo_t structure, must have been allocated by caller. |
◆ getReferenceCount()
int NDArray::getReferenceCount |
( |
| ) |
const |
|
inline |
◆ initDimension()
int NDArray::initDimension |
( |
NDDimension_t * |
pDimension, |
|
|
size_t |
size |
|
) |
| |
Initializes the dimension structure to size=size, binning=1, reverse=0, offset=0.
- Parameters
-
[in] | pDimension | Pointer to an NDDimension_t structure, must have been allocated by caller. |
[in] | size | The size of this dimension. |
◆ release()
◆ report()
int NDArray::report |
( |
FILE * |
fp, |
|
|
int |
details |
|
) |
| |
Reports on the properties of the array.
- Parameters
-
◆ reserve()
◆ NDArrayPool
◆ codec
Definition of codec used to compress the data.
◆ compressedSize
size_t NDArray::compressedSize |
Size of the compressed data.
Should be equal to dataSize if pData is uncompressed.
◆ dataSize
Data size for this array; actual amount of memory allocated for *pData, may be more than required to hold the array.
◆ dataType
Data type for this array.
◆ dims
Array of dimension sizes for this array; first ndims values are meaningful.
◆ epicsTS
epicsTimeStamp NDArray::epicsTS |
The epicsTimeStamp; this is set with pasynManager->updateTimeStamp(), and can come from a user-defined timestamp source.
◆ ndims
The number of dimensions in this array; minimum=1.
◆ pAttributeList
Linked list of attributes.
◆ pData
Pointer to the array data.
The data is assumed to be stored in the order of dims[0] changing fastest, and dims[ndims-1] changing slowest.
◆ pDriver
◆ pNDArrayPool
◆ timeStamp
double NDArray::timeStamp |
The time stamp in seconds for this array; seconds since EPICS epoch (00:00:00 UTC, January 1, 1990) is recommended, but some drivers may use a different start time.
◆ uniqueId
A number that must be unique for all NDArrays produced by a driver after is has started.
The documentation for this class was generated from the following files:
- /home/runner/work/areaDetector/areaDetector/ADCore/ADApp/ADSrc/NDArray.h
- /home/runner/work/areaDetector/areaDetector/ADCore/ADApp/ADSrc/NDArray.cpp