Add base monitor class for the new architecture

New architecture is intended to improve flexibility for which
signals are monitored in a system and how they are handled.

New monitoring flow handles interrupt storms better by using
the interrupt to notify of changes and start a polling loop to
get the actual status.

This base monitor class provides the basic members such as 'valid',
asio connection, and signal name that are common to all host error
signals.

Change-Id: I6310772003a1d3c5c73838089866ec92f533f529
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
diff --git a/include/error_monitors/base_monitor.hpp b/include/error_monitors/base_monitor.hpp
new file mode 100644
index 0000000..1ddb76b
--- /dev/null
+++ b/include/error_monitors/base_monitor.hpp
@@ -0,0 +1,51 @@
+/*
+// Copyright (c) 2021 Intel 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.
+*/
+#pragma once
+#include <sdbusplus/asio/object_server.hpp>
+
+#include <iostream>
+
+namespace host_error_monitor::base_monitor
+{
+
+class BaseMonitor
+{
+  public:
+    bool valid;
+    boost::asio::io_service& io;
+    std::shared_ptr<sdbusplus::asio::connection> conn;
+
+    std::string signalName;
+
+    BaseMonitor(boost::asio::io_service& io,
+                std::shared_ptr<sdbusplus::asio::connection> conn,
+                const std::string& signalName) :
+        valid(false),
+        io(io), conn(conn), signalName(signalName)
+
+    {
+        std::cerr << "Initializing " << signalName << " Monitor\n";
+    }
+
+    virtual void hostOn()
+    {}
+
+    bool isValid()
+    {
+        return valid;
+    }
+};
+} // namespace host_error_monitor::base_monitor