Generate task event

Generate the task event registry.

Tested: on last patch of series

Change-Id: I55b7914978f7a1d637cad6dfae398949af0a7107
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/redfish-core/src/task_messages.cpp b/redfish-core/src/task_messages.cpp
new file mode 100644
index 0000000..ebc7cf6
--- /dev/null
+++ b/redfish-core/src/task_messages.cpp
@@ -0,0 +1,168 @@
+/****************************************************************
+ *                 READ THIS WARNING FIRST
+ * This is an auto-generated header which contains definitions
+ * for Redfish DMTF defined messages.
+ * DO NOT modify this registry outside of running the
+ * parse_registries.py script.  The definitions contained within
+ * this file are owned by DMTF.  Any modifications to these files
+ * should be first pushed to the relevant registry in the DMTF
+ * github organization.
+ ***************************************************************/
+#include "task_messages.hpp"
+
+#include "registries.hpp"
+#include "registries/task_event_message_registry.hpp"
+
+#include <nlohmann/json.hpp>
+
+#include <array>
+#include <cstddef>
+#include <cstdint>
+#include <span>
+#include <string>
+#include <string_view>
+
+// Clang can't seem to decide whether this header needs to be included or not,
+// and is inconsistent.  Include it for now
+// NOLINTNEXTLINE(misc-include-cleaner)
+#include <utility>
+
+namespace redfish
+{
+
+namespace messages
+{
+
+static nlohmann::json getLog(redfish::registries::task_event::Index name,
+                             std::span<const std::string_view> args)
+{
+    size_t index = static_cast<size_t>(name);
+    if (index >= redfish::registries::task_event::registry.size())
+    {
+        return {};
+    }
+    return getLogFromRegistry(redfish::registries::task_event::header,
+                              redfish::registries::task_event::registry, index,
+                              args);
+}
+
+/**
+ * @internal
+ * @brief Formats TaskStarted message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskStarted(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskStarted,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskCompletedOK message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskCompletedOK(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskCompletedOK,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskCompletedWarning message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskCompletedWarning(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskCompletedWarning,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskAborted message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskAborted(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskAborted,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskCancelled message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskCancelled(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskCancelled,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskRemoved message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskRemoved(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskRemoved,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskPaused message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskPaused(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskPaused,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskResumed message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskResumed(std::string_view arg1)
+{
+    return getLog(redfish::registries::task_event::Index::taskResumed,
+                  std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats TaskProgressChanged message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json taskProgressChanged(std::string_view arg1, uint64_t arg2)
+{
+    std::string arg2Str = std::to_string(arg2);
+    return getLog(redfish::registries::task_event::Index::taskProgressChanged,
+                  std::to_array<std::string_view>({arg1, arg2Str}));
+}
+
+} // namespace messages
+} // namespace redfish