My Project
drvemOutput.h
1 /*************************************************************************\
2 * Copyright (c) 2013 Brookhaven Science Associates, as Operator of
3 * Brookhaven National Laboratory.
4 * mrfioc2 is distributed subject to a Software License Agreement found
5 * in file LICENSE that is included with this distribution.
6 \*************************************************************************/
7 /*
8  * Author: Michael Davidsaver <mdavidsaver@gmail.com>
9  */
10 
11 #ifndef EVRMRMOUTPUT_H_INC
12 #define EVRMRMOUTPUT_H_INC
13 
14 #include "evr/output.h"
15 #include "evr/evr.h"
16 
17 class EVRMRM;
18 
26 class MRMOutput : public mrf::ObjectInst<MRMOutput, Output>
27 {
29 public:
30  MRMOutput(const std::string& n, EVRMRM* owner, OutputType t, unsigned int idx);
31  virtual ~MRMOutput();
32 
33  virtual void lock() const OVERRIDE FINAL;
34  virtual void unlock() const OVERRIDE FINAL;
35 
36  virtual epicsUInt32 source() const OVERRIDE FINAL;
37  virtual void setSource(epicsUInt32) OVERRIDE FINAL;
38 
39  epicsUInt32 source2() const;
40  void setSource2(epicsUInt32);
41 
42  virtual bool enabled() const OVERRIDE FINAL;
43  virtual void enable(bool) OVERRIDE FINAL;
44 
45 private:
46  EVRMRM * const owner;
47  const OutputType type;
48  const unsigned int N;
49  bool isEnabled;
50  epicsUInt32 shadowSource;
51 
52  epicsUInt32 sourceInternal() const;
53  void setSourceInternal();
54 };
55 
56 
57 #endif // EVRMRMOUTPUT_H_INC
Modular Register Map Event Receivers.
Definition: drvem.h:97
Definition: drvemOutput.h:27
User implementation hook.
Definition: object.h:460