areaDetector 1-9
|
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. | |
~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 | report (int details) |
Reports on the properties of the array. | |
Public Attributes | |
class NDArrayPool * | pNDArrayPool |
The NDArrayPool object 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 Epoch (00:00:00 UTC, January 1, 1970) is recommended, but some drivers may use a different start time. | |
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. | |
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 | ( | ) |
NDArray destructor Frees the data array, deletes all attributes, frees the attribute list and destroys the mutex.
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. |
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 | ( | int | details | ) |
Reports on the properties of the array.
[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 class NDArrayPool [friend] |
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.
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.
int NDArray::ndims |
The number of dimensions in this array; minimum=1.
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 NDArrayPool* NDArray::pNDArrayPool |
The NDArrayPool object that created this array.
double NDArray::timeStamp |
The time stamp in seconds for this array; seconds since Epoch (00:00:00 UTC, January 1, 1970) is recommended, but some drivers may use a different start time.
A number that must be unique for all NDArrays produced by a driver after is has started.