1 #pragma once
2 
3 #include <string>
4 
5 #include "interfaces.hpp"
6 #include "sysfs/util.hpp"
7 
8 
9 /*
10  * A WriteInterface that is expecting a path that's sysfs, but really could be
11  * any filesystem path.
12  */
13 class SysFsWritePercent : public WriteInterface
14 {
15     public:
16         SysFsWritePercent(std::string& writepath, int64_t min, int64_t max)
17             : WriteInterface(min, max),
18               _writepath(FixupPath(writepath))
19         { }
20 
21         void write(double value) override;
22 
23     private:
24         std::string _writepath;
25 };
26 
27 class SysFsWrite : public WriteInterface
28 {
29     public:
30         SysFsWrite(std::string& writepath, int64_t min, int64_t max)
31             : WriteInterface(min, max),
32               _writepath(FixupPath(writepath))
33         { }
34 
35         void write(double value) override;
36 
37     private:
38         std::string _writepath;
39 };
40