LRAUV  revA
DataWriter.h
Go to the documentation of this file.
1 
10 #ifndef DATAWRITER_H_
11 #define DATAWRITER_H_
12 
13 #include "data/DataAccessor.h"
14 #include "data/DataValue.h"
15 #include "utils/Timestamp.h"
16 
17 class Unit;
19 template < typename T > class FlexArray;
20 
27 class DataWriter : public DataAccessor
28 {
29 public:
30  DataWriter( Component* owner,
31  DataElement& element,
32  UniversalDataElement* universal,
33  Logger::TimePrecisionType timePrecisionType );
34  virtual ~DataWriter();
35 
36  //===============================================================
38  bool setUnavailable( bool unavailable = true );
39  bool isUnavailable(); // Normally called on a reader, but can also be called on a writer
40  bool setInvalid( bool invalid = true );
41  bool isInvalid();
42  void registerChange( void );
43 
48  virtual bool write( const Unit& unit, const unsigned char value, const Timestamp& timestamp = Timestamp::NOT_SET_TIME );
49  virtual bool write( const Unit& unit, const double value, const Timestamp& timestamp = Timestamp::NOT_SET_TIME );
50  virtual bool write( const Unit& unit, const int value, const Timestamp& timestamp = Timestamp::NOT_SET_TIME );
51  virtual bool write( const DataValue& value, const Timestamp& timestamp = Timestamp::NOT_SET_TIME );
52 
57  const Timestamp& getTimestamp();
58 
61  bool isDataRequested();
62 
64  bool isImplemented();
65 
66  void componentRequestData( bool requestingData )
67  {
68  componentRequestingData_ = requestingData;
69  }
70 
71 protected:
73 
74 };
75 
76 #endif /*DATAWRITER_H_*/
bool isImplemented()
Returns true if there is a non-failed "implementor" reader of this writer.
Definition: DataWriter.cpp:95
Implementation of a DataElement as a "UniversalDataElement".
Definition: UniversalDataElement.h:29
void componentRequestData(bool requestingData)
Definition: DataWriter.h:66
bool setInvalid(bool invalid=true)
Definition: DataWriter.cpp:44
virtual bool write(const Unit &unit, const unsigned char value, const Timestamp &timestamp=Timestamp::NOT_SET_TIME)
Sets the Component's DataValue, with an optional timestamp.
Definition: DataWriter.cpp:71
bool isUnavailable()
Definition: DataWriter.cpp:39
void registerChange(void)
Definition: DataWriter.cpp:54
A DataValue is an abstract base class for a data value and associated engineering units of the value...
Definition: DataValue.h:35
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
bool componentRequestingData_
Definition: DataWriter.h:72
static const Timestamp NOT_SET_TIME
Constant value to represent "no time".
Definition: Timestamp.h:37
bool isDataRequested()
Returns true if one of the readers registered with this writer's dataElement is requesting data...
Definition: DataWriter.cpp:89
Abstact base class of all elements which can write to, or read from the slate.
Definition: DataAccessor.h:29
bool isInvalid()
Definition: DataWriter.cpp:49
Abstract Base class for software components.
Definition: Component.h:53
TimePrecisionType
Definition: Logger.h:37
bool setUnavailable(bool unavailable=true)
Definition: DataWriter.cpp:34
Contains the DataAccessor class definition.
Contains the DataValue class definition.
Simple class providing a flexible size array of pointers.
Definition: DataReader.h:19
Contains the Timestamp and Timespan class declarations.
const Timestamp & getTimestamp()
Returns the Timestamp of the last write.
Definition: DataWriter.cpp:82
DataWriter(Component *owner, DataElement &element, UniversalDataElement *universal, Logger::TimePrecisionType timePrecisionType)
Definition: DataWriter.cpp:15
Code that represents an engineering unit.
Definition: Unit.h:24
virtual ~DataWriter()
Definition: DataWriter.cpp:26
Represents absolute times.
Definition: Timestamp.h:31
Abstact base class for one "element" of the Slate.
Definition: DataElement.h:37