| #pragma once |
| |
| #include <stdint.h> |
| |
| namespace libhei |
| { |
| |
| class ReturnCode |
| { |
| public: |
| /** |
| * @brief Constructor. |
| * @param i_rc The error code value. |
| */ |
| explicit constexpr ReturnCode(uint32_t i_rc = 0) : iv_rc(i_rc) {} |
| |
| /** @brief Default copy constructor. */ |
| ReturnCode(const ReturnCode&) = default; |
| |
| /** @brief Default assignment operator. */ |
| ReturnCode& operator=(const ReturnCode&) = default; |
| |
| /** @brief Default destructor. */ |
| ~ReturnCode() = default; |
| |
| /** @brief Integral type conversion function. */ |
| operator uint32_t() const |
| { |
| return iv_rc; |
| } |
| |
| /** @brief Integral type conversion function. */ |
| operator uint64_t() const |
| { |
| return iv_rc; |
| } |
| |
| /** @brief Equals operator. */ |
| bool operator==(const ReturnCode& rhs) const |
| { |
| return rhs.iv_rc == iv_rc; |
| } |
| |
| /** @brief Not equals operator. */ |
| bool operator!=(const ReturnCode& rhs) const |
| { |
| return rhs.iv_rc != iv_rc; |
| } |
| |
| /** |
| * @brief Returns the error code value. |
| * |
| * We'd prefer to use the integral type conversion functions above, but |
| * some compilers will throw warnings when passing this object into |
| * functions with variadic arguments, like printf(). |
| */ |
| uint32_t get() const |
| { |
| return iv_rc; |
| } |
| |
| private: |
| uint32_t iv_rc; ///< return code value |
| }; |
| |
| // clang-format off |
| |
| /** Function returned successfully. */ |
| static constexpr ReturnCode RC_SUCCESS = ReturnCode(); |
| |
| /** The given Chip Data File is malformed or unsupported. */ |
| static constexpr ReturnCode RC_CHIP_DATA_INVALID = ReturnCode(0x00000001); |
| |
| /** The given Chip Data File contains a chip type that has already been |
| * initialized. */ |
| static constexpr ReturnCode RC_CHIP_DATA_INITIALIZED = ReturnCode(0x00000002); |
| |
| /** The given chip type has not been initialized. */ |
| static constexpr ReturnCode RC_CHIP_DATA_MISSING = ReturnCode(0x00000003); |
| |
| /** Generic return code indicating something along the hardware register access |
| * path failed and the returned data is undefined and should not be used. */ |
| static constexpr ReturnCode RC_REG_ACCESS_FAILURE = ReturnCode(0x00000004); |
| |
| // clang-format on |
| |
| } // end namespace libhei |