monitor: Create PowerOffAction class hierarchy
The PowerOffAction base class and its derived classes will be used to
power off a system due to fan failures.
There are 3 types of power offs:
1. HardPowerOff - Do a hard power off after a delay
2. SoftPowerOff - Do a soft power off after a delay
3. EpowPowerOff - This isn't fully defined yet, but it will involve
powering off after setting an early power off warning
somehow and then waiting through 2 delays.
The code that makes the D-Bus calls to do the power offs is in a
standalone class so that it can be be mocked in testcases.
This code also makes use of the Logger class for logging, so this commit
brings that in as a singleton.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I83118963df4ec0b4f89619572f6935329eec3adb
diff --git a/monitor/logging.cpp b/monitor/logging.cpp
new file mode 100644
index 0000000..1463bc6
--- /dev/null
+++ b/monitor/logging.cpp
@@ -0,0 +1,30 @@
+/**
+ * Copyright © 2020 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "config.h"
+
+#include "logging.hpp"
+
+namespace phosphor::fan::monitor
+{
+
+Logger& getLogger()
+{
+ static Logger logger{NUM_MONITOR_LOG_ENTRIES};
+
+ return logger;
+}
+
+} // namespace phosphor::fan::monitor