Linux makeNode() helper overload

This commit is contained in:
Pavel Kirienko
2016-06-13 00:46:13 +03:00
parent 59bcde5868
commit a19dfd56dc
6 changed files with 102 additions and 35 deletions
@@ -35,6 +35,28 @@ public:
int getErrno() const { return errno_; }
};
/**
* This type is thrown when a Libuavcan API method exits with error.
* The error code is stored in the exception object and is avialable via @ref getLibuavcanErrorCode().
*/
class LibuavcanErrorException : public Exception
{
const std::int16_t error_;
static std::string makeErrorString(std::int16_t e)
{
return "Libuavcan error (" + std::to_string(e) + ")";
}
public:
explicit LibuavcanErrorException(std::int16_t uavcan_error_code) :
Exception(makeErrorString(uavcan_error_code)),
error_(std::abs(uavcan_error_code))
{ }
std::int16_t getLibuavcanErrorCode() const { return error_; }
};
/**
* This exception is thrown when all available interfaces become down.
*/