LRAUV  revA
DataAccessor.h
Go to the documentation of this file.
1 
10 #ifndef DATAACCESSOR_H_
11 #define DATAACCESSOR_H_
12 
13 #include "data/BinaryDataType.h"
14 #include "data/ElementURI.h"
15 #include "logger/Logger.h"
16 
17 class Component;
18 class DataElement;
19 class DataAccess;
20 class Unit;
22 
30 {
31  friend class Slate;
32 
33 public:
34 
36  {
39  };
40 
42  {
50  };
51 
52  static const char* const REQUEST_STRATEGY_STRS[STRATEGY_COUNT];
53 
54  static RequestStrategy Str2RequestStrategy( const char* const strategyStr );
55 
56  static const char* RequestStrategy2Str( DataAccessor::RequestStrategy strategy );
57 
58  virtual ~DataAccessor()
59  {}
60 
61  virtual DataElement& getElement( void ) const
62  {
63  return element_;
64  }
65 
66  virtual Component* getOwner( void ) const
67  {
68  return owner_;
69  }
70 
71  virtual const ElementURI& getUri( void ) const;
72 
74  {
75  return accessorType_;
76  }
77 
79  {
80  return dataAccess_;
81  }
82 
84  {
85  return timePrecision_;
86  }
87 
88 protected:
89 
90  DataAccessor( Component* owner, DataElement& element,
91  AccessorType accessorType, UniversalDataElement* universal,
93 
99 
100 private:
101  // Note that the copy constructor below is private and not given a body.
102  // Any attempt to call it will return a compiler error.
103  DataAccessor( const DataAccessor& old ); // disallow copy constructor
104 
105 };
106 
107 #endif /*DATAACCESSOR_H_*/
Serializable representation of DataAccessor object.
Definition: DataAccess.h:30
static RequestStrategy Str2RequestStrategy(const char *const strategyStr)
Definition: DataAccessor.cpp:27
Implementation of a DataElement as a "UniversalDataElement".
Definition: UniversalDataElement.h:29
DataAccessor(Component *owner, DataElement &element, AccessorType accessorType, UniversalDataElement *universal, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
Protected Constructor.
Definition: DataAccessor.cpp:55
virtual Component * getOwner(void) const
Definition: DataAccessor.h:66
AccessorType accessorType_
Definition: DataAccessor.h:96
Definition: DataAccessor.h:44
DataAccess * dataAccess_
Definition: DataAccessor.h:98
virtual DataElement & getElement(void) const
Definition: DataAccessor.h:61
Definition: DataAccessor.h:43
Definition: DataAccessor.h:49
virtual const ElementURI & getUri(void) const
Definition: DataAccessor.cpp:49
static const char * RequestStrategy2Str(DataAccessor::RequestStrategy strategy)
Definition: DataAccessor.cpp:40
Definition: DataAccessor.h:37
Logger::TimePrecisionType timePrecision_
Definition: DataAccessor.h:97
Definition: DataAccessor.h:47
Abstact base class of all elements which can write to, or read from the slate.
Definition: DataAccessor.h:29
static const char *const REQUEST_STRATEGY_STRS[STRATEGY_COUNT]
Definition: DataAccessor.h:52
DataElement & element_
Definition: DataAccessor.h:95
AccessorType getAccessorType() const
Definition: DataAccessor.h:73
Abstract Base class for software components.
Definition: Component.h:53
Definition: DataAccessor.h:45
TimePrecisionType
Definition: Logger.h:37
DataAccess * getDataAccess() const
Definition: DataAccessor.h:78
Contains the ElementURI class definition.
Contains the Logger class definition.
Code unit that represents the slate.
Definition: Slate.h:73
Contains the BinaryDataType enumeration.
Component * owner_
Definition: DataAccessor.h:94
Code unit that represents a unique name for a DataElement.
Definition: ElementURI.h:27
AccessorType
Definition: DataAccessor.h:35
Definition: DataAccessor.h:38
Definition: Logger.h:40
Definition: DataAccessor.h:48
Code that represents an engineering unit.
Definition: Unit.h:24
Definition: DataAccessor.h:46
Logger::TimePrecisionType getTimePrecision() const
Definition: DataAccessor.h:83
virtual ~DataAccessor()
Definition: DataAccessor.h:58
Abstact base class for one "element" of the Slate.
Definition: DataElement.h:37
RequestStrategy
Definition: DataAccessor.h:41