LRAUV  revA
DataAccess.h
Go to the documentation of this file.
1 
10 #ifndef DATAACCESS_H_
11 #define DATAACCESS_H_
12 
13 #include "data/BinaryDataType.h"
14 #include "data/DataAccessor.h"
15 #include "data/ElementURI.h"
16 #include "io/InStream.h"
17 #include "io/OutStream.h"
18 
19 class Component;
20 class DataElement;
21 class Unit;
23 
31 {
32 public:
33 
37  DataAccess( const DataAccessor& dataAccessor, UniversalDataElement* universal, unsigned short code = NO_CODE );
38 
42  DataAccess( const unsigned short ownerCode,
43  const unsigned short elementCode,
44  const unsigned short unniversalCode,
45  const char* unitName,
46  BinaryDataType binaryType,
47  unsigned short typeSize,
48  DataAccessor::AccessorType accessorType,
49  unsigned short code,
50  bool noInterpFlag,
51  Logger::TimePrecisionType timePrecisionType );
52 
53  virtual ~DataAccess();
54 
55  inline unsigned short getOwnerCode() const
56  {
57  return ownerCode_;
58  }
59 
60  inline unsigned short getElementCode() const
61  {
62  return elementCode_;
63  }
64 
65  inline unsigned short getUniversalCode() const
66  {
67  return universalCode_;
68  }
69 
70  const Unit* getUnit();
71 
73  {
74  return binaryType_;
75  }
76 
77  inline unsigned short getTypeSize() const
78  {
79  return typeSize_;
80  }
81 
83  {
84  return accessorType_;
85  }
86 
87  inline void setCode( const unsigned short code )
88  {
89  code_ = code;
90  }
91 
92  inline const unsigned short getCode() const
93  {
94  return code_;
95  }
96 
98  {
99  noInterpFlag_ = true;
100  }
101 
102  bool getNoInterpFlag() const
103  {
104  return noInterpFlag_;
105  }
106 
107  const Str asString( bool includeCodeAndUnit );
108 
109  static const unsigned short NO_CODE = 0x3FFF;
110 
111  unsigned int write( OutStream& outStream );
112 
113  void copyUnitsTypeAndSizeFrom( DataAccess* dataAccess );
114 
115  static DataAccess* Read( InStream& inStream );
116 
118  {
119  return timePrecision_;
120  }
121 
122 protected:
123 
124  unsigned short ownerCode_;
125  unsigned short elementCode_;
126  unsigned short universalCode_;
127  const Unit* unit_;
129  unsigned short typeSize_;
131  unsigned short code_;
135 
136 private:
137  // Note that the copy constructor below is private and not given a body.
138  // Any attempt to call it will return a compiler error.
139  DataAccess( const DataAccess& old ); // disallow copy constructor
140 
141 };
142 
143 #endif /*DATAACCESS_H_*/
bool noInterpFlag_
Definition: DataAccess.h:133
Serializable representation of DataAccessor object.
Definition: DataAccess.h:30
virtual ~DataAccess()
Definition: DataAccess.cpp:82
BinaryDataType
These are binary type identifiers for serializing and unserializing The syntax below handles up to 16...
Definition: BinaryDataType.h:39
static DataAccess * Read(InStream &inStream)
Definition: DataAccess.cpp:175
Implementation of a DataElement as a "UniversalDataElement".
Definition: UniversalDataElement.h:29
unsigned short getTypeSize() const
Definition: DataAccess.h:77
unsigned short code_
Definition: DataAccess.h:131
const Unit * unit_
Definition: DataAccess.h:127
unsigned short getUniversalCode() const
Definition: DataAccess.h:65
const Unit * getUnit()
Definition: DataAccess.cpp:90
unsigned short universalCode_
Definition: DataAccess.h:126
Contains the OutStream class declaration.
BinaryDataType binaryType_
Definition: DataAccess.h:128
This is a very abstract class that can be implemented by classes that want to receive stream input...
Definition: InStream.h:29
void setNoInterpFlag()
Definition: DataAccess.h:97
unsigned short typeSize_
Definition: DataAccess.h:129
Str * tempUnitName_
Definition: DataAccess.h:132
const Str asString(bool includeCodeAndUnit)
Definition: DataAccess.cpp:105
BinaryDataType getBinaryType() const
Definition: DataAccess.h:72
Abstact base class of all elements which can write to, or read from the slate.
Definition: DataAccessor.h:29
Replacement for standard template class string.
Definition: Str.h:12
DataAccessor::AccessorType getAccessorType() const
Definition: DataAccess.h:82
Abstract Base class for software components.
Definition: Component.h:53
TimePrecisionType
Definition: Logger.h:37
unsigned short getElementCode() const
Definition: DataAccess.h:60
void copyUnitsTypeAndSizeFrom(DataAccess *dataAccess)
Definition: DataAccess.cpp:168
Contains the InStream and NullInStream class declarations.
Contains the ElementURI class definition.
Contains the DataAccessor class definition.
Logger::TimePrecisionType timePrecision_
Definition: DataAccess.h:134
Contains the BinaryDataType enumeration.
DataAccessor::AccessorType accessorType_
Definition: DataAccess.h:130
unsigned short getOwnerCode() const
Definition: DataAccess.h:55
static const unsigned short NO_CODE
Definition: DataAccess.h:109
const unsigned short getCode() const
Definition: DataAccess.h:92
This is a very abstract class that can be implemented by classes that want to send stream output...
Definition: OutStream.h:41
AccessorType
Definition: DataAccessor.h:35
DataAccess(const DataAccessor &dataAccessor, UniversalDataElement *universal, unsigned short code=NO_CODE)
Constructor (called only by via Slate call for a new DataAccessor).
Definition: DataAccess.cpp:24
unsigned int write(OutStream &outStream)
Definition: DataAccess.cpp:131
unsigned short ownerCode_
Definition: DataAccess.h:124
Code that represents an engineering unit.
Definition: Unit.h:24
Logger::TimePrecisionType getTimePrecision()
Definition: DataAccess.h:117
Abstact base class for one "element" of the Slate.
Definition: DataElement.h:37
unsigned short elementCode_
Definition: DataAccess.h:125
void setCode(const unsigned short code)
Definition: DataAccess.h:87
bool getNoInterpFlag() const
Definition: DataAccess.h:102