1/* 2 * Copyright 2010-2019 Branimir Karadzic. All rights reserved. 3 * License: https://github.com/bkaradzic/bx#license-bsd-2-clause 4 */ 5 6#ifndef BX_ERROR_H_HEADER_GUARD 7# error "Must be included from bx/error!" 8#endif // BX_ERROR_H_HEADER_GUARD 9 10namespace bx 11{ 12 inline Error::Error() 13 : m_code(0) 14 { 15 } 16 17 inline void Error::reset() 18 { 19 m_code = 0; 20 m_msg.clear(); 21 } 22 23 inline void Error::setError(ErrorResult _errorResult, const StringView& _msg) 24 { 25 BX_CHECK(0 != _errorResult.code, "Invalid ErrorResult passed to setError!"); 26 27 if (!isOk() ) 28 { 29 return; 30 } 31 32 m_code = _errorResult.code; 33 m_msg = _msg; 34 } 35 36 inline bool Error::isOk() const 37 { 38 return 0 == m_code; 39 } 40 41 inline ErrorResult Error::get() const 42 { 43 ErrorResult result = { m_code }; 44 return result; 45 } 46 47 inline const StringView& Error::getMessage() const 48 { 49 return m_msg; 50 } 51 52 inline bool Error::operator==(const ErrorResult& _rhs) const 53 { 54 return _rhs.code == m_code; 55 } 56 57 inline bool Error::operator!=(const ErrorResult& _rhs) const 58 { 59 return _rhs.code != m_code; 60 } 61 62 inline ErrorScope::ErrorScope(Error* _err) 63 : m_err(_err) 64 { 65 BX_CHECK(NULL != _err, "_err can't be NULL"); 66 } 67 68 inline ErrorScope::~ErrorScope() 69 { 70 BX_CHECK(m_err->isOk(), "Error: %d", m_err->get().code); 71 } 72 73} // namespace bx 74