1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace task 7 { 8 // clang-format off 9 10 enum class TaskState{ 11 Invalid, 12 New, 13 Starting, 14 Running, 15 Suspended, 16 Interrupted, 17 Pending, 18 Stopping, 19 Completed, 20 Killed, 21 Exception, 22 Service, 23 Cancelling, 24 Cancelled, 25 }; 26 27 NLOHMANN_JSON_SERIALIZE_ENUM(TaskState, { 28 {TaskState::Invalid, "Invalid"}, 29 {TaskState::New, "New"}, 30 {TaskState::Starting, "Starting"}, 31 {TaskState::Running, "Running"}, 32 {TaskState::Suspended, "Suspended"}, 33 {TaskState::Interrupted, "Interrupted"}, 34 {TaskState::Pending, "Pending"}, 35 {TaskState::Stopping, "Stopping"}, 36 {TaskState::Completed, "Completed"}, 37 {TaskState::Killed, "Killed"}, 38 {TaskState::Exception, "Exception"}, 39 {TaskState::Service, "Service"}, 40 {TaskState::Cancelling, "Cancelling"}, 41 {TaskState::Cancelled, "Cancelled"}, 42 }); 43 44 } 45 // clang-format on 46