1863b9246SPatrick Venture #pragma once
2863b9246SPatrick Venture 
3863b9246SPatrick Venture /* Interface that implements an exception throwing read method. */
4863b9246SPatrick Venture 
5863b9246SPatrick Venture #include "interfaces.hpp"
6863b9246SPatrick Venture 
7*a076487aSPatrick Venture namespace pid_control
8*a076487aSPatrick Venture {
9*a076487aSPatrick Venture 
10863b9246SPatrick Venture class ReadOnly : public WriteInterface
11863b9246SPatrick Venture {
12863b9246SPatrick Venture   public:
13da4a5dd1SPatrick Venture     ReadOnly() : WriteInterface(0, 0)
14a83a3eccSPatrick Venture     {}
15863b9246SPatrick Venture 
16863b9246SPatrick Venture     void write(double value) override;
17863b9246SPatrick Venture };
18863b9246SPatrick Venture 
19863b9246SPatrick Venture class ReadOnlyNoExcept : public WriteInterface
20863b9246SPatrick Venture {
21863b9246SPatrick Venture   public:
22da4a5dd1SPatrick Venture     ReadOnlyNoExcept() : WriteInterface(0, 0)
23a83a3eccSPatrick Venture     {}
24863b9246SPatrick Venture 
25863b9246SPatrick Venture     void write(double value) override;
26863b9246SPatrick Venture };
27*a076487aSPatrick Venture 
28*a076487aSPatrick Venture } // namespace pid_control
29