Add missing owner services precondition

Change-Id: Iccd29359ff46084d96df655e0761c86ecfabd567
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/preconditions.hpp b/control/preconditions.hpp
index 1ee3cf6..c756047 100644
--- a/control/preconditions.hpp
+++ b/control/preconditions.hpp
@@ -32,6 +32,22 @@
 Action property_states_match(std::vector<PrecondGroup>&& pg,
                              std::vector<SetSpeedEvent>&& sse);
 
+/**
+ * @brief A precondition to determine if there are any missing owners
+ * of the services for the group to init/remove a set speed event
+ * @details Checks each service associated with a group has an owner and
+ * if any of the services are missing an owner, the precondition passes
+ * and the events are initialized. Once all services associated with a
+ * group have an owner, the events are removed from being active.
+ *
+ * @param[in] sse - Set speed event definitions
+ *
+ * @return Lambda function
+ *     A lambda function precondition to check for group member services
+ *     that are not owned to either initialize or remove set speed events.
+ */
+Action services_missing_owner(std::vector<SetSpeedEvent>&& sse);
+
 } // namespace precondition
 } // namespace control
 } // namespace fan