|
areaDetector
3-5-0
EPICS areaDetector framework
|
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data, and optional attributes. More...
#include <NDArray.h>
Public Member Functions | |
| NDArray () | |
| NDArray constructor, no parameters. More... | |
| 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. More... | |
| int | initDimension (NDDimension_t *pDimension, size_t size) |
| Initializes the dimension structure to size=size, binning=1, reverse=0, offset=0. More... | |
| 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. More... | |
| int | reserve () |
| Calls NDArrayPool::reserve() for this NDArray object; increases the reference count for this array. More... | |
| int | release () |
| Calls NDArrayPool::release() for this object; decreases the reference count for this array. More... | |
| int | getReferenceCount () const |
| int | report (FILE *fp, int details) |
| Reports on the properties of the array. More... | |
Static Public Member Functions | |
| static int | computeArrayInfo (int ndims, size_t *dims, NDDataType_t dataType, NDArrayInfo *pInfo) |
| Convenience method computes the total the total number of bytes in the array. More... | |
Public Attributes | |
| class NDArrayPool * | pNDArrayPool |
| The NDArrayPool object that created this array. More... | |
| class asynNDArrayDriver * | pDriver |
| The asynNDArrayDriver that created this array. More... | |
| int | uniqueId |
| A number that must be unique for all NDArrays produced by a driver after is has started. More... | |
| 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. More... | |
| epicsTimeStamp | epicsTS |
| The epicsTimeStamp; this is set with pasynManager->updateTimeStamp(), and can come from a user-defined timestamp source. More... | |
| int | ndims |
| The number of dimensions in this array; minimum=1. More... | |
| NDDimension_t | dims [ND_ARRAY_MAX_DIMS] |
| Array of dimension sizes for this array; first ndims values are meaningful. More... | |
| NDDataType_t | dataType |
| Data type for this array. More... | |
| size_t | dataSize |
| Data size for this array; actual amount of memory allocated for *pData, may be more than required to hold the array. More... | |
| void * | pData |
| Pointer to the array data. More... | |
| NDAttributeList * | pAttributeList |
| Linked list of attributes. More... | |
| Codec_t | codec |
| Definition of codec used to compress the data. More... | |
| size_t | compressedSize |
| Size of the compressed data. More... | |
Friends | |
| class | NDArrayPool |
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::NDArray | ( | ) |
NDArray constructor, no parameters.
Initializes all fields to 0. Creates the attribute linked list and linked list mutex.
| NDArray::NDArray | ( | int | ndims, |
| size_t * | dims, | ||
| NDDataType_t | dataType, | ||
| size_t | dataSize, | ||
| void * | pData | ||
| ) |
|
virtual |
NDArray destructor Frees the data array, deletes all attributes, frees the attribute list and destroys the mutex.
|
static |
Convenience method computes the total the total number of bytes in the array.
| int NDArray::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.
| [out] | pInfo | Pointer to an NDArrayInfo_t structure, must have been allocated by caller. |
|
inline |
| int NDArray::initDimension | ( | NDDimension_t * | pDimension, |
| size_t | size | ||
| ) |
Initializes the dimension structure to size=size, binning=1, reverse=0, offset=0.
| [in] | pDimension | Pointer to an NDDimension_t structure, must have been allocated by caller. |
| [in] | size | The size of this dimension. |
| int NDArray::release | ( | ) |
Calls NDArrayPool::release() for this object; decreases the reference count for this array.
| int NDArray::report | ( | FILE * | fp, |
| int | details | ||
| ) |
Reports on the properties of the array.
| [in] | fp | File pointer for the report output. |
| [in] | details | Level of report details desired; if >5 calls NDAttributeList::report(). |
| int NDArray::reserve | ( | ) |
Calls NDArrayPool::reserve() for this NDArray object; increases the reference count for this array.
|
friend |
| Codec_t NDArray::codec |
Definition of codec used to compress the data.
| size_t NDArray::compressedSize |
Size of the compressed data.
Should be equal to dataSize if pData is uncompressed.
| size_t NDArray::dataSize |
Data size for this array; actual amount of memory allocated for *pData, may be more than required to hold the array.
| NDDataType_t NDArray::dataType |
Data type for this array.
| NDDimension_t NDArray::dims[ND_ARRAY_MAX_DIMS] |
Array of dimension sizes for this array; first ndims values are meaningful.
| epicsTimeStamp NDArray::epicsTS |
The epicsTimeStamp; this is set with pasynManager->updateTimeStamp(), and can come from a user-defined timestamp source.
| int NDArray::ndims |
The number of dimensions in this array; minimum=1.
| NDAttributeList* NDArray::pAttributeList |
Linked list of attributes.
| void* NDArray::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.
| class asynNDArrayDriver* NDArray::pDriver |
The asynNDArrayDriver that created this array.
| class NDArrayPool* NDArray::pNDArrayPool |
The NDArrayPool object that created this array.
| 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.
| int NDArray::uniqueId |
A number that must be unique for all NDArrays produced by a driver after is has started.
1.8.15