AAO DRAMA C++ Interface (Old style)
DRAMA C++, Depreciated, don't use for new code
Classes | Public Member Functions | Protected Member Functions | Friends | List of all members
SdsArrayAccessHelper< T > Class Template Reference

Helper class for access to an SDS Scaler Array. More...

#include <sds.h>

Classes

class  InvalidIndexException
 This class is thrown by the SdsArrayAccessHelper index operator when it is found the index is invalid. More...
 
class  NoDataException
 This class is thrown by the SdsArraAccessHelper index operator when it is found there is no data to access. More...
 

Public Member Functions

SdsCodeType Code () const
 Return the SDS type code of the item being accessed.
 
const T * DataAddressRO () const
 Access the data directly - read only.
 
T * DataAddressRW ()
 Access the data directly.
 
T & operator[] (const unsigned long index)
 SDS array subscript operator (non-const version)
 
T const & operator[] (const unsigned long index) const
 SDS array subscript operator (const version)
 
unsigned long Size () const
 Return the number of elements in the array.
 

Protected Member Functions

 SdsArrayAccessHelper (SdsCodeType c)
 Constructor - only available to sub-classes.
 

Friends

class SdsId
 

Detailed Description

template<typename T>
class SdsArrayAccessHelper< T >

Helper class for access to an SDS Scaler Array.

This is Data helper class for the ArrayAccess methods of the SdsId:: class. The main point here is to set up a releationship between an SDS data type and the relevant underlying Sds code - SdsCodeType of the SDS scalar array we wish to access. Once the relationship is set up (by creating an subclass using this template) and a call is made to SdsId::ArrayAccess(), then the methods of this class allow access to the data using the index operator.

Warning
The array index operator will throw an NoDataException exception if there is no data to access or a InvalidIndexException exception if the index for the data is invalid.
See also
SdsId::ArrayAccess

Various defined Instantiations of this template are provided - for each SDS code associated with the a scalar.

See also
SdsArrayChar
SdsArrayUbyte
SdsArrayByte
SdsArrayShort
SdsArrayUshort
SdsArrayINT32
SdsArrayUINT32
SdsArrayINT64
SdsArrayUINT64
SdsArrayFloat
SdsArrayDouble

The documentation for this class was generated from the following file: