LRAUV  revA
Float.h
Go to the documentation of this file.
1 
10 #ifndef FLOAT_H_
11 #define FLOAT_H_
12 
13 #ifndef NANF
14 #define NANF ( nanf( "" ) )
15 #endif
16 
17 #include "DataValue.h"
18 
19 class RingBufferVoid;
20 
36 class Float : public DataValue
37 {
38 public:
39 
41  Float( const Unit& unit, float value, bool scaleValue = true );
42 
44  Float( const Unit& unit, const void *binary );
45 
47  virtual ~Float()
48  {}
49  ;
50 
52  void* operator new( size_t size );
53 
55  void operator delete( void* p );
56 
58  Float* copy() const;
59 
61  virtual void minus( const DataValue* rhs, DataValue* assignTo ) const;
62 
64  virtual void times( const double rhs, DataValue* assignTo ) const;
65 
67  virtual double absDiff( const DataValue* rhs ) const;
68 
70  virtual bool copyTo( const Unit& unit, unsigned char& assignTo ) const;
71 
73  virtual bool copyTo( const Unit& unit, double& assignTo ) const;
74 
76  virtual bool copyTo( const Unit& unit, double& assignTo, unsigned int dim ) const
77  {
78  return copyTo( unit, assignTo );
79  }
80 
82  virtual bool copyTo( const Unit& unit, float& assignTo ) const;
83 
85  virtual bool copyTo( const Unit& unit, int& assignTo ) const;
86 
88  virtual int compare( const Unit& unit, const unsigned char& compareTo ) const;
89 
91  virtual int compare( const Unit& unit, const double& compareTo ) const;
92 
94  virtual int compare( const Unit& unit, const float& compareTo ) const;
95 
97  virtual int compare( const Unit& unit, const int& compareTo ) const;
98 
100  virtual int compare( const DataValue& compareTo ) const;
101 
103  virtual bool equals( const Unit& unit, const unsigned char& compareTo ) const;
104 
106  virtual bool equals( const Unit& unit, const double& compareTo ) const;
107 
109  virtual bool equals( const Unit& unit, const float& compareTo ) const;
110 
112  virtual bool equals( const Unit& unit, const int& compareTo ) const;
113 
115  virtual bool equals( const DataValue& compareTo ) const;
116 
119  virtual bool equalsForStorage( const float& compareTo ) const;
120 
122  virtual bool isNaN();
123 
125  virtual bool setFrom( const Unit& unit, unsigned char value );
126 
128  virtual bool setFrom( const Unit& unit, double value );
129 
131  virtual bool setFrom( const Unit& unit, float value );
132 
134  virtual bool setFrom( const Unit& unit, int value );
135 
137  virtual bool setFrom( const DataValue& value );
138 
139  // as a Str
140  virtual Str toString( const Unit& unit ) const;
141 
145  virtual unsigned int toStream( OutStream& outStream ) const;
146 
150  static unsigned int ToBinary( const float& value, unsigned char *buffer, unsigned int maxlen );
151 
155  virtual void fromBinary( const void *buffer );
156 
157 protected:
158 
160  Float();
161 
162  float value_;
163 
166 
169  {
170  public:
171  virtual ~StaticDestructor();
172  };
173 
176 
177 };
178 
179 #endif /*FLOAT_H_*/
virtual bool copyTo(const Unit &unit, double &assignTo, unsigned int dim) const
Copy n-dimensional value to double.
Definition: Float.h:76
virtual double absDiff(const DataValue *rhs) const
Return the absolute value of this difference from another DataValue.
Definition: Float.cpp:91
virtual unsigned int toStream(OutStream &outStream) const
Send the data value to the indicated stream.
Definition: Float.cpp:279
static unsigned int ToBinary(const float &value, unsigned char *buffer, unsigned int maxlen)
Convert the specified value to a binary representation in the buffer Typically just a memcopy of the ...
Definition: Float.cpp:287
virtual ~Float()
Destructor.
Definition: Float.h:47
A DataValue is an abstract base class for a data value and associated engineering units of the value...
Definition: DataValue.h:35
float value_
Definition: Float.h:162
Float * copy() const
Return a pointer to a new copy.
Definition: Float.cpp:69
virtual bool equalsForStorage(const float &compareTo) const
A quick equality check used to see if value has changed enough to matter in logging (useful for reduc...
Definition: Float.cpp:193
Float()
Protected Empty constructor for use by DataEntry class.
Definition: Float.cpp:303
virtual bool equals(const Unit &unit, const unsigned char &compareTo) const
Equality test with with unsigned char.
Definition: Float.cpp:160
Replacement for standard template class string.
Definition: Str.h:12
virtual ~StaticDestructor()
Definition: Float.cpp:19
virtual bool copyTo(const Unit &unit, unsigned char &assignTo) const
Copy value to unsigned char.
Definition: Float.cpp:102
static RingBufferVoid * MallocRing_
Declared as a pointer to avoid including RingBuffer.h header here.
Definition: Float.h:165
virtual void fromBinary(const void *buffer)
Load the data from the a binary representation in the buffer Typically just a memcopy of the variable...
Definition: Float.cpp:297
static Float::StaticDestructor StaticDestructor_
Static instance of StaticDestructor.
Definition: Float.h:175
Contains the DataValue class definition.
virtual bool isNaN()
Returns true if the number is not a number.
Definition: Float.cpp:199
This is a very abstract class that can be implemented by classes that want to send stream output...
Definition: OutStream.h:41
virtual void times(const double rhs, DataValue *assignTo) const
Multiplication by a double to yield another DataValue.
Definition: Float.cpp:85
virtual int compare(const Unit &unit, const unsigned char &compareTo) const
Comparison with unsigned char.
Definition: Float.cpp:130
Makes sure that mallocRing_s is deleted on shutdown.
Definition: Float.h:168
Thread-safe ring buffer for storing void pointers.
Definition: RingBuffer.h:36
Code that represents an engineering unit.
Definition: Unit.h:24
virtual bool setFrom(const Unit &unit, unsigned char value)
set from unsigned char value
Definition: Float.cpp:205
virtual Str toString() const
Definition: DataValue.h:147
Wraps a single precision (4-byte) floating point number and unit for storage in a DataElement...
Definition: Float.h:36
virtual void minus(const DataValue *rhs, DataValue *assignTo) const
Subtraction of another DataValue to yield another DataValue.
Definition: Float.cpp:75