1 /*
2 // Copyright (c) 2020 Intel Corporation
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 */
16 #pragma once
17 #include "registries/task_event_message_registry.hpp"
18
19 #include <nlohmann/json.hpp>
20
21 #include <array>
22 namespace redfish::messages
23 {
24
25 inline nlohmann::json
getLogTaskEvent(redfish::registries::task_event::Index name,std::span<const std::string_view> args)26 getLogTaskEvent(redfish::registries::task_event::Index name,
27 std::span<const std::string_view> args)
28 {
29 size_t index = static_cast<size_t>(name);
30 if (index >= redfish::registries::task_event::registry.size())
31 {
32 return {};
33 }
34 return getLogFromRegistry(redfish::registries::task_event::header,
35 redfish::registries::task_event::registry, index,
36 args);
37 }
38
taskAborted(std::string_view arg1)39 inline nlohmann::json taskAborted(std::string_view arg1)
40 {
41 return getLogTaskEvent(registries::task_event::Index::taskAborted,
42 std::to_array({arg1}));
43 }
44
taskCancelled(std::string_view arg1)45 inline nlohmann::json taskCancelled(std::string_view arg1)
46 {
47 return getLogTaskEvent(registries::task_event::Index::taskCancelled,
48 std::to_array({arg1}));
49 }
50
taskCompletedOK(std::string_view arg1)51 inline nlohmann::json taskCompletedOK(std::string_view arg1)
52 {
53 return getLogTaskEvent(registries::task_event::Index::taskCompletedOK,
54 std::to_array({arg1}));
55 }
56
taskCompletedWarning(std::string_view arg1)57 inline nlohmann::json taskCompletedWarning(std::string_view arg1)
58 {
59 return getLogTaskEvent(registries::task_event::Index::taskCompletedWarning,
60 std::to_array({arg1}));
61 }
62
taskPaused(std::string_view arg1)63 inline nlohmann::json taskPaused(std::string_view arg1)
64 {
65 return getLogTaskEvent(registries::task_event::Index::taskPaused,
66 std::to_array({arg1}));
67 }
68
taskProgressChanged(std::string_view arg1,size_t arg2)69 inline nlohmann::json taskProgressChanged(std::string_view arg1, size_t arg2)
70 {
71 std::string arg2Str = std::to_string(arg2);
72 return getLogTaskEvent(registries::task_event::Index::taskProgressChanged,
73 std::to_array<std::string_view>({arg1, arg2Str}));
74 }
75
taskRemoved(std::string_view arg1)76 inline nlohmann::json taskRemoved(std::string_view arg1)
77 {
78 return getLogTaskEvent(registries::task_event::Index::taskRemoved,
79 std::to_array({arg1}));
80 }
81
taskResumed(std::string_view arg1)82 inline nlohmann::json taskResumed(std::string_view arg1)
83 {
84 return getLogTaskEvent(registries::task_event::Index::taskResumed,
85 std::to_array({arg1}));
86 }
87
taskStarted(std::string_view arg1)88 inline nlohmann::json taskStarted(std::string_view arg1)
89 {
90 return getLogTaskEvent(registries::task_event::Index::taskStarted,
91 std::to_array({arg1}));
92 }
93
94 } // namespace redfish::messages
95