LRAUV  revA
DataValue Class Referenceabstract

A DataValue is an abstract base class for a data value and associated engineering units of the value, where a "value" is a chunk of data that would be written in a single stroke – such as an integer or floating point value – or the pair of values associated with Latitude and Longitude, or even a 6-DOF location or rate. More...

#include <DataValue.h>

Inheritance diagram for DataValue:
Collaboration diagram for DataValue:

Public Member Functions

virtual ~DataValue ()
 Destructor. More...
 
void operator delete (void *p)
 Override delete. More...
 
virtual DataValuecopy () const =0
 Return a pointer to a new copy. More...
 
virtual void minus (const DataValue *rhs, DataValue *assignTo) const =0
 Subtraction of another DataValue to yield another DataValue. More...
 
virtual void times (const double rhs, DataValue *assignTo) const =0
 Multiplication by a double to yield another DataValue. More...
 
virtual double absDiff (const DataValue *rhs) const =0
 Return the absolute value of this difference from another DataValue. More...
 
virtual bool copyTo (const Unit &unit, bool &assignTo) const
 Copy value to bool. More...
 
virtual bool copyTo (const Unit &unit, unsigned char &assignTo) const =0
 Copy value to signed char. More...
 
virtual bool copyTo (const Unit &unit, double &assignTo) const =0
 Copy value to double. More...
 
virtual bool copyTo (const Unit &unit, float &assignTo) const =0
 Copy value to float. More...
 
virtual bool copyTo (const Unit &unit, int &assignTo) const =0
 Copy value to signed int. More...
 
virtual bool copyTo (DataValue &assignTo) const
 Copy value to another dataValue. More...
 
virtual int compare (const Unit &unit, const bool &compareTo) const
 Comparison with bool. More...
 
virtual int compare (const Unit &unit, const unsigned char &compareTo) const =0
 Comparison with unsigned char. More...
 
virtual int compare (const Unit &unit, const double &compareTo) const =0
 Comparison with double. More...
 
virtual int compare (const Unit &unit, const float &compareTo) const =0
 Comparison with float. More...
 
virtual int compare (const Unit &unit, const int &compareTo) const =0
 Comparison with int. More...
 
virtual int compare (const DataValue &compareTo) const =0
 Comparison with another DataValue. More...
 
virtual bool equals (const Unit &unit, const bool &compareTo) const
 Equality test with with bool. More...
 
virtual bool equals (const Unit &unit, const unsigned char &compareTo) const =0
 Equality test with with unsigned char. More...
 
virtual bool equals (const Unit &unit, const double &compareTo) const =0
 Equality test with double. More...
 
virtual bool equals (const Unit &unit, const float &compareTo) const =0
 Equality test with float. More...
 
virtual bool equals (const Unit &unit, const int &compareTo) const =0
 Equality test with int. More...
 
virtual bool equals (const DataValue &compareTo) const =0
 Equality test with another DataValue. More...
 
virtual bool isNaN ()
 Returns true if the number is not a number. More...
 
virtual bool setFrom (const Unit &unit, bool value)
 set from bool value More...
 
virtual bool setFrom (const Unit &unit, unsigned char value)=0
 set from unsigned char value More...
 
virtual bool setFrom (const Unit &unit, double value)=0
 set double value More...
 
virtual bool setFrom (const Unit &unit, float value)=0
 set float value More...
 
virtual bool setFrom (const Unit &unit, int value)=0
 set int value More...
 
virtual bool setFrom (const DataValue &value)=0
 set other DataValue value More...
 
virtual Str toString (const Unit &unit) const =0
 
virtual Str toString () const
 
virtual unsigned int toStream (OutStream &outStream) const =0
 Send the data value to the indicated stream. More...
 
virtual void fromBinary (const void *buffer)=0
 Load the data from the a binary representation in the buffer Typically just a memcopy of the variable, though endianness may come into it. More...
 
virtual size_t getTypeSize () const
 Returns the size of the internal storage type (i.e. sizeof(type)) More...
 
virtual BinaryDataType getBinaryType (void) const
 Returns a constant (defined in BinaryDataType.h) representing the internal storage type. More...
 
const UnitgetUnit () const
 
const UnitgetBaseUnit () const
 
void setUnit (const Unit &unit)
 
void clearType ()
 

Protected Member Functions

 DataValue (const Unit &unit, const size_t &typeSize, const BinaryDataType &binaryType)
 Protected Constructor for abstract base class. More...
 
 DataValue (const size_t &typeSize, const BinaryDataType &binaryType)
 Protected unitless constructor for use via DataEntry class. More...
 

Protected Attributes

const Unitunit_
 
size_t typeSize_
 size of the internal storage type (i.e. sizeof(type)) More...
 
BinaryDataType binaryType_
 constant (defined in BinaryDataType.h) representing the internal storage type More...
 

Private Member Functions

 DataValue (const DataValue &old)
 

Friends

class DataAccess
 

Detailed Description

A DataValue is an abstract base class for a data value and associated engineering units of the value, where a "value" is a chunk of data that would be written in a single stroke – such as an integer or floating point value – or the pair of values associated with Latitude and Longitude, or even a 6-DOF location or rate.

Many dataValues have a native resolution that exceeds their serialized resolutions. For example Float2 is handled internally as a 4-byte floating point number – but is serialized as a two-byte floating point number. Likewise, a Location is handled internally as a pair of 8-byte doubles, but is serialized as a pair of 4-byte floats.

Constructor & Destructor Documentation

virtual DataValue::~DataValue ( )
inlinevirtual

Destructor.

DataValue::DataValue ( const Unit unit,
const size_t &  typeSize,
const BinaryDataType binaryType 
)
inlineprotected

Protected Constructor for abstract base class.

DataValue::DataValue ( const size_t &  typeSize,
const BinaryDataType binaryType 
)
inlineprotected

Protected unitless constructor for use via DataEntry class.

DataValue::DataValue ( const DataValue old)
private

Member Function Documentation

virtual double DataValue::absDiff ( const DataValue rhs) const
pure virtual

Return the absolute value of this difference from another DataValue.

Implemented in StrValue, Double, Float, and Int.

void DataValue::clearType ( )
inline

References binaryType_, and NO_TYPE.

int DataValue::compare ( const Unit unit,
const bool &  compareTo 
) const
virtual

Comparison with bool.

Referenced by Int::compare(), Float::compare(), Double::compare(), and ValueClause::eval().

virtual int DataValue::compare ( const Unit unit,
const unsigned char &  compareTo 
) const
pure virtual

Comparison with unsigned char.

Implemented in StrValue, Double, Float, and Int.

virtual int DataValue::compare ( const Unit unit,
const double &  compareTo 
) const
pure virtual

Comparison with double.

Implemented in StrValue, Double, Float, and Int.

virtual int DataValue::compare ( const Unit unit,
const float &  compareTo 
) const
pure virtual

Comparison with float.

Implemented in StrValue, Double, Float, and Int.

virtual int DataValue::compare ( const Unit unit,
const int &  compareTo 
) const
pure virtual

Comparison with int.

Implemented in StrValue, Double, Float, and Int.

virtual int DataValue::compare ( const DataValue compareTo) const
pure virtual

Comparison with another DataValue.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::copyTo ( const Unit unit,
unsigned char &  assignTo 
) const
pure virtual

Copy value to signed char.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::copyTo ( const Unit unit,
double &  assignTo 
) const
pure virtual

Copy value to double.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::copyTo ( const Unit unit,
float &  assignTo 
) const
pure virtual

Copy value to float.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::copyTo ( const Unit unit,
int &  assignTo 
) const
pure virtual

Copy value to signed int.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::copyTo ( DataValue assignTo) const
inlinevirtual

Copy value to another dataValue.

References setFrom().

bool DataValue::equals ( const Unit unit,
const bool &  compareTo 
) const
virtual
virtual bool DataValue::equals ( const Unit unit,
const unsigned char &  compareTo 
) const
pure virtual

Equality test with with unsigned char.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::equals ( const Unit unit,
const double &  compareTo 
) const
pure virtual

Equality test with double.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::equals ( const Unit unit,
const float &  compareTo 
) const
pure virtual

Equality test with float.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::equals ( const Unit unit,
const int &  compareTo 
) const
pure virtual

Equality test with int.

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::equals ( const DataValue compareTo) const
pure virtual

Equality test with another DataValue.

Implemented in StrValue, Double, Float, and Int.

virtual void DataValue::fromBinary ( const void *  buffer)
pure virtual

Load the data from the a binary representation in the buffer Typically just a memcopy of the variable, though endianness may come into it.

Implemented in StrValue, Double, Float, Int, Double6, Float2, Float3, Double4, and UChar.

Referenced by DataEntry::Read().

virtual BinaryDataType DataValue::getBinaryType ( void  ) const
inlinevirtual
virtual size_t DataValue::getTypeSize ( ) const
inlinevirtual

Returns the size of the internal storage type (i.e. sizeof(type))

References typeSize_.

Referenced by DataAccess::DataAccess(), StrValue::equals(), and Slate::NewUniversalElement().

virtual bool DataValue::isNaN ( )
inlinevirtual

Returns true if the number is not a number.

Reimplemented in Double, and Float.

Referenced by ValueClause::eval().

virtual void DataValue::minus ( const DataValue rhs,
DataValue assignTo 
) const
pure virtual

Subtraction of another DataValue to yield another DataValue.

Implemented in StrValue, Double, Float, and Int.

void DataValue::operator delete ( void *  p)

Override delete.

References DOUBLE4, DOUBLE6, DOUBLE8, FLOAT2, FLOAT3, FLOAT4, INT4, MULTIVALUE, SHORT2, UCHAR1, and USHORT2.

virtual bool DataValue::setFrom ( const Unit unit,
unsigned char  value 
)
pure virtual

set from unsigned char value

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::setFrom ( const Unit unit,
double  value 
)
pure virtual

set double value

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::setFrom ( const Unit unit,
float  value 
)
pure virtual

set float value

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::setFrom ( const Unit unit,
int  value 
)
pure virtual

set int value

Implemented in StrValue, Double, Float, and Int.

virtual bool DataValue::setFrom ( const DataValue value)
pure virtual

set other DataValue value

Implemented in StrValue, Double, Float, and Int.

void DataValue::setUnit ( const Unit unit)
inline

References unit_.

Referenced by ValueClause::ReadReader().

virtual void DataValue::times ( const double  rhs,
DataValue assignTo 
) const
pure virtual

Multiplication by a double to yield another DataValue.

Implemented in StrValue, Double, Float, and Int.

virtual unsigned int DataValue::toStream ( OutStream outStream) const
pure virtual

Send the data value to the indicated stream.

Return the number of bytes written. For now, assume little-endian.

Implemented in StrValue, Double, Float, Int, Double6, Float2, Float3, Double4, Short, UShort, and UChar.

Referenced by DataEntry::write().

virtual Str DataValue::toString ( ) const
inlinevirtual

Reimplemented in StrValue.

References Unit::getAbbreviation(), and getUnit().

Friends And Related Function Documentation

friend class DataAccess
friend

Member Data Documentation

BinaryDataType DataValue::binaryType_
protected

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