| #pragma once |
| |
| #include <stdexcept> |
| |
| namespace phosphor |
| { |
| namespace inventory |
| { |
| namespace manager |
| { |
| |
| // TODO: Use proper error generation techniques |
| // https://github.com/openbmc/openbmc/issues/1125 |
| |
| /** @class InterfaceError |
| * @brief Exception class for unrecognized interfaces. |
| */ |
| class InterfaceError final : public std::invalid_argument |
| { |
| public: |
| ~InterfaceError() = default; |
| InterfaceError() = delete; |
| InterfaceError(const InterfaceError&) = delete; |
| InterfaceError(InterfaceError&&) = default; |
| InterfaceError& operator=(const InterfaceError&) = delete; |
| InterfaceError& operator=(InterfaceError&&) = default; |
| |
| /** @brief Construct an interface error. |
| * |
| * @param[in] msg - The message to be returned by what(). |
| * @param[in] iface - The failing interface name. |
| */ |
| InterfaceError(const char* msg, const std::string& iface) : |
| std::invalid_argument(msg), interface(iface) |
| { |
| } |
| |
| /** @brief Log the exception message to the systemd journal. */ |
| void log() const; |
| |
| private: |
| std::string interface; |
| }; |
| |
| } // namespace manager |
| } // namespace inventory |
| } // namespace phosphor |
| |
| // vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 |