EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
SampleMechanismEA3.h
1 #ifndef SAMPLEMECHANISM_EA3_H_
2 #define SAMPLEMECHANISM_EA3_H_
3 
4 // engine
5 #include "engine/SampleMechanism.h"
6 #include "engine/CircularBuffer.h"
7 
9 
10  public:
11 
13  SampleMechanismEA3(const EngineConfig& config,
15  const char* name,
16  double period,
17  ProcessVariableListener* disable_filt_listener);
18 
20  virtual ~SampleMechanismEA3();
21 
22  public:
23 
27  virtual unsigned long write(Guard& guard, Index& index);
28 
29  public:
30 
35  virtual void pvConnected(ProcessVariable& pv, const epicsTime& when);
36 
46  virtual void pvValue(ProcessVariable &pv, const RawValue::Data *data);
47 
48  public:
49 
51  inline size_t getSampleCount(Guard &guard) const;
52 
53  protected:
54 
60  virtual void addEvent(Guard& guard, short severity, const epicsTime& when);
61 
62  protected:
63 
64  CircularBuffer buffer; // Sample storage between disk writes.
65 
66 };
67 
68 inline size_t SampleMechanismEA3::getSampleCount(Guard& guard) const{
69  return buffer.getCount();
70 }
71 
72 
73 
74 #endif /*SAMPLEMECHANISM_EA3_H_*/
virtual void pvConnected(ProcessVariable &pv, const epicsTime &when)
ProcessVariableStateListener.
One process variable.
Definition: ProcessVariable.h:39
SampleMechanismEA3(const EngineConfig &config, ProcessVariableContext &ctx, const char *name, double period, ProcessVariableListener *disable_filt_listener)
Constructor.
Global engine configuration parameters.
Definition: EngineConfig.h:14
Automatically takes and releases an epicsMutex.
Definition: Guard.h:63
Sample Mechanism base, has a ProcessVariable and filters its values.
Definition: SampleMechanism.h:33
Listener for ProcessVariable info.
Definition: ProcessVariableListener.h:47
In-Memory buffer for values.
Definition: CircularBuffer.h:14
size_t getSampleCount(Guard &guard) const
Definition: SampleMechanismEA3.h:68
Context for ProcessVariable instances.
Definition: ProcessVariableContext.h:18
Definition: SampleMechanismEA3.h:8
virtual void pvValue(ProcessVariable &pv, const RawValue::Data *data)
ProcessVariableValueListener.
Base interface for the archiver's indices.
Definition: Index.h:16
virtual ~SampleMechanismEA3()
Destructor.
size_t getCount() const
Number of values in the buffer, 0...(capacity-1)
dbr_time_double Data
Type for accessing the raw data and its common fields.
Definition: RawValue.h:55
virtual unsigned long write(Guard &guard, Index &index)
Write current buffer to index.