EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
ChanRegistry.h
1 #ifndef EA4_CHAN_REGISTRY_H
2 #define EA4_CHAN_REGISTRY_H
3 
4 #include <map>
5 
6 #include "CtrlInfo.h"
7 
8 namespace ea4 {
9 
14 class ChanInfo {
15 
16  public:
17 
19  void setType(unsigned short dbr_type, unsigned short dbr_count);
20 
21 public:
22 
24  unsigned short dbr_type;
25 
27  unsigned short dbr_count;
28 
30  double period;
31 
33  int nSamples;
34 
36  int nChunks;
37 
38 };
39 
42 class ChanRegistry {
43 
44  public:
45 
47  static ChanRegistry* getInstance();
48 
49  public:
50 
52  void setCtrlInfo(const char* chName, const CtrlInfo& info);
53 
55  bool containsCtrlInfo(const char* chName) const;
56 
58  const CtrlInfo& getCtrlInfo(const char* chName) const;
59 
60  public:
61 
63  void setChanInfo(const char* chName, const ChanInfo& info);
64 
66  bool containsChanInfo(const char* chName) const;
67 
69  const ChanInfo& getChanInfo(const char* chName) const;
70 
71  private:
72 
73  ChanRegistry();
74 
75  private:
76 
77  static ChanRegistry* theInstance;
78 
79  CtrlInfo emptyCtrlInfo;
80  std::map<std::string, CtrlInfo> ctrlInfos;
81 
82  ChanInfo emptyChanInfo;
83  std::map<std::string, ChanInfo> chanInfos;
84 
85 };
86 
87 }
88 
89 #endif
void setCtrlInfo(const char *chName, const CtrlInfo &info)
Sets the control info for the specified channel.
unsigned short dbr_count
DBR count (1 - scalar, &gt;1 - waveform)
Definition: ChanRegistry.h:27
double period
Estimated periodicity of the channel.
Definition: ChanRegistry.h:30
int nChunks
Max number of chunks in the buffer.
Definition: ChanRegistry.h:36
static ChanRegistry * getInstance()
Returns a singleton.
Meta-information for values: Units, limits, etc .
Definition: CtrlInfo.h:75
int nSamples
Max number of samples in the chunk.
Definition: ChanRegistry.h:33
void setChanInfo(const char *chName, const ChanInfo &info)
Sets the channel info for the specified channel.
bool containsCtrlInfo(const char *chName) const
Checks if the specified channel is registered.
Container with the meta-information, including type.
Definition: ChanRegistry.h:14
const ChanInfo & getChanInfo(const char *chName) const
Returns the channel info for the specified channel.
bool containsChanInfo(const char *chName) const
Checks if the specified channel is registered.
const CtrlInfo & getCtrlInfo(const char *chName) const
Returns the control info for the specified channel.
Memory-resident registry of the channel infos.
Definition: ChanRegistry.h:42
unsigned short dbr_type
DBR type (see db_access.h)
Definition: ChanRegistry.h:24
void setType(unsigned short dbr_type, unsigned short dbr_count)
Sets the data type of this channel.