blob: 204b96a0efb8101637fe737b0bcfc0b5e1c3deab [file] [log] [blame]
Rekha Aparna5e3ff852025-08-12 10:51:23 -05001#pragma once
2
Rekha Aparna9443af22025-08-28 02:40:08 -05003#include <string>
4#include <unordered_map>
5
Rekha Aparna5e3ff852025-08-12 10:51:23 -05006namespace vpd
7{
8namespace error_code
9{
10// File exceptions
11static constexpr auto FILE_NOT_FOUND = 1001;
12static constexpr auto FILE_ACCESS_ERROR = 1002;
13static constexpr auto EMPTY_FILE = 1003;
14
15// JSON exceptions
16static constexpr auto INVALID_JSON = 2001;
17static constexpr auto MISSING_FLAG = 2002;
18static constexpr auto MISSING_ACTION_TAG = 2003;
19static constexpr auto FRU_PATH_NOT_FOUND = 2004;
Rekha Aparnaca9a0862025-08-29 04:08:33 -050020static constexpr auto JSON_PARSE_ERROR = 2005;
Sunny Srivastava84c3d232025-09-03 00:47:10 -050021static constexpr auto JSON_MISSING_GPIO_INFO = 2006;
Rekha Aparna5e3ff852025-08-12 10:51:23 -050022
23// Generic errors.
Rekha Aparna017567a2025-08-13 02:07:06 -050024static constexpr auto INVALID_INPUT_PARAMETER = 3001;
Sunny Srivastava84c3d232025-09-03 00:47:10 -050025static constexpr auto DEVICE_NOT_PRESENT = 2006;
26static constexpr auto DEVICE_PRESENCE_UNKNOWN = 2007;
27static constexpr auto GPIO_LINE_EXCEPTION = 2008;
Rekha Aparna9443af22025-08-28 02:40:08 -050028
29const std::unordered_map<int, std::string> errorCodeMap = {
30 {FILE_NOT_FOUND, "File does not exist."},
31 {FILE_ACCESS_ERROR, "Failed to access the file."},
32 {EMPTY_FILE, "Empty file."},
33 {INVALID_JSON, "Either JSON is missing FRU tag or invalid JSON object."},
34 {MISSING_FLAG, "JSON is missing the flag to procees for the FRU."},
35 {MISSING_ACTION_TAG,
36 "JSON is missing the action tag to be performed for the FRU."},
37 {FRU_PATH_NOT_FOUND, "The FRU path is not found in the JSON."},
Rekha Aparnaca9a0862025-08-29 04:08:33 -050038 {JSON_PARSE_ERROR, "Error while parsing JSON file."},
Rekha Aparna017567a2025-08-13 02:07:06 -050039 {INVALID_INPUT_PARAMETER,
Sunny Srivastava84c3d232025-09-03 00:47:10 -050040 "Either one of the input parameter is invalid or empty."},
41 {JSON_MISSING_GPIO_INFO, "JSON missing required GPIO info."},
42 {DEVICE_NOT_PRESENT,
43 "Presence pin read successfully but device was absent."},
44 {DEVICE_PRESENCE_UNKNOWN, "Exception on presence line GPIO."},
45 {GPIO_LINE_EXCEPTION, "There was an exception in GPIO line."}};
Rekha Aparna5e3ff852025-08-12 10:51:23 -050046} // namespace error_code
47} // namespace vpd