created PluginResolution class
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I68560934b487f12b6b95dc73a93bb049f7777656
diff --git a/analyzer/resolution.hpp b/analyzer/resolution.hpp
index 9530b70..6626318 100644
--- a/analyzer/resolution.hpp
+++ b/analyzer/resolution.hpp
@@ -196,6 +196,36 @@
};
/**
+ * @brief Some service actions cannot be contained within the RAS data files.
+ * This resolution class allows a predefined plugin function to be
+ * called to do additional service action work.
+ */
+class PluginResolution : public Resolution
+{
+ public:
+ /**
+ * @brief Constructor from components.
+ * @param i_name The name of the plugin.
+ * @param i_instance A plugin could be defined for multiple chip
+ * units/registers.
+ */
+ PluginResolution(const std::string& i_name, unsigned int i_instance) :
+ iv_name(i_name), iv_instance(i_instance)
+ {}
+
+ private:
+ /** The name of the plugin. */
+ const std::string iv_name;
+
+ /** Some plugins will define the same action for multiple instances of a
+ * register (i.e. for each core on a processor). */
+ const unsigned int iv_instance;
+
+ public:
+ void resolve(ServiceData& io_sd) const override;
+};
+
+/**
* @brief Contains a list of resolutions. This resolutions will be resolved the
* list in the order in which they were inputted into the constructor.
*/