create PluginMap and plugin definition

Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I1d4c9c59657f7c07f0fffdd6dc94d5d21033ff0a
diff --git a/analyzer/resolution.cpp b/analyzer/resolution.cpp
index c47cb31..3183216 100644
--- a/analyzer/resolution.cpp
+++ b/analyzer/resolution.cpp
@@ -1,3 +1,4 @@
+#include <analyzer/plugins/plugin.hpp>
 #include <analyzer/resolution.hpp>
 #include <util/pdbg.hpp>
 #include <util/trace.hpp>
@@ -282,10 +283,15 @@
 
 //------------------------------------------------------------------------------
 
-void PluginResolution::resolve(ServiceData&) const
+void PluginResolution::resolve(ServiceData& io_sd) const
 {
-    trace::inf("PluginResolution: iv_name=%s iv_instance=%u", iv_name.c_str(),
-               iv_instance);
+    // Get the plugin function and call it.
+
+    auto chip = io_sd.getRootCause().getChip();
+
+    auto func = PluginMap::getSingleton().get(chip.getType(), iv_name);
+
+    func(iv_instance, chip, io_sd);
 }
 
 //------------------------------------------------------------------------------