EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
DataReader.h
1 // -*- c++ -*-
2 
3 #ifndef __DATA_READER_H__
4 #define __DATA_READER_H__
5 
6 // tools
7 #include "tools/ToolsConfig.h"
8 #include "tools/NoCopy.h"
9 
10 // storage
11 #include "storage/Index.h"
12 #include "storage/RTree.h"
13 #include "storage/CtrlInfo.h"
14 #include "storage/RawValue.h"
15 
18 
24 {
25 public:
26  DataReader() {}
27 
28  virtual ~DataReader();
29 
47  virtual const RawValue::Data *find(const stdString &channel_name,
48  const epicsTime *start) = 0;
49 
51  virtual const stdString &getName() const = 0;
52 
69  virtual const RawValue::Data *next() = 0;
70 
75  virtual const RawValue::Data *get() const = 0;
76 
78  virtual DbrType getType() const = 0;
79 
81  virtual DbrCount getCount() const = 0;
82 
84  virtual const CtrlInfo &getInfo() const = 0;
85 
93  void toString(stdString &text) const;
94 
99  virtual bool changedType() = 0;
100 
105  virtual bool changedInfo() = 0;
106 private:
107  PROHIBIT_DEFAULT_COPY(DataReader);
108 };
109 
111 
112 #endif
virtual const stdString & getName() const =0
Name of the channel, i.e. the one passed to find()
unsigned short DbrType
DbrType is used to hold dbr_time_xxx types.
Definition: RawValue.h:24
Meta-information for values: Units, limits, etc .
Definition: CtrlInfo.h:75
Reads data from storage.
Definition: DataReader.h:23
virtual DbrType getType() const =0
The dbr_time_xxx type.
virtual const RawValue::Data * find(const stdString &channel_name, const epicsTime *start)=0
Locate data.
void toString(stdString &text) const
Convert current value to string.
virtual bool changedInfo()=0
next() updates this if ctrl_info changed.
unsigned short DbrCount
DbrCount is used to hold the array size of CA channels.
Definition: RawValue.h:27
virtual bool changedType()=0
next() updates this if dbr_type/count changed.
virtual DbrCount getCount() const =0
array size
dbr_time_double Data
Type for accessing the raw data and its common fields.
Definition: RawValue.h:55
virtual const CtrlInfo & getInfo() const =0
The meta information for the channel.
virtual const RawValue::Data * next()=0
Obtain the next value.