Add support for clock callout resolutions

Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I67f02a2fafaa63a0bafaa1116150da35ef4dece1
diff --git a/analyzer/resolution.hpp b/analyzer/resolution.hpp
index 44638be..1574d04 100644
--- a/analyzer/resolution.hpp
+++ b/analyzer/resolution.hpp
@@ -56,6 +56,36 @@
     void resolve(ServiceData& io_sd) const override;
 };
 
+/** @brief Resolves a clock callout service event. */
+class ClockCalloutResolution : public Resolution
+{
+  public:
+    /**
+     * @brief Constructor from components.
+     * @param i_clockType The clock type.
+     * @param i_priority  The callout priority.
+     * @param i_guard     The guard type for this callout.
+     */
+    ClockCalloutResolution(const callout::ClockType& i_clockType,
+                           const callout::Priority& i_priority, bool i_guard) :
+        iv_clockType(i_clockType),
+        iv_priority(i_priority), iv_guard(i_guard)
+    {}
+
+  private:
+    /** The clock type. */
+    const callout::ClockType iv_clockType;
+
+    /** The callout priority. */
+    const callout::Priority iv_priority;
+
+    /** True, if guard is required. False, otherwise. */
+    const bool iv_guard;
+
+  public:
+    void resolve(ServiceData& io_sd) const override;
+};
+
 /** @brief Resolves a procedure callout service event. */
 class ProcedureCalloutResolution : public Resolution
 {