1 #ifndef GAUDIKERNEL_STATUSCODE_H 2 #define GAUDIKERNEL_STATUSCODE_H 34 StatusCode(
unsigned long code,
bool checked =
false ) : d_code( code ), m_checked( checked ) {}
39 StatusCode(
StatusCode&& rhs ) noexcept : d_code( rhs.d_code ), m_checked( rhs.m_checked ) { rhs.m_checked =
true; }
44 if (
UNLIKELY( s_checking ) ) check();
65 return ( d_code == RECOVERABLE );
84 void ignore()
const { setChecked(); }
87 bool checked()
const {
return m_checked; }
90 operator unsigned long()
const {
return getCode(); }
101 m_checked = std::exchange( rhs.
m_checked,
true );
155 mutable bool m_checked =
false;
166 return s <<
"SUCCESS";
169 return s <<
"RECOVERABLE";
175 #endif // GAUDIKERNEL_STATUSCODES_H StatusCode(unsigned long code, bool checked=false)
void setCode(unsigned long value)
Set the status code by value.
unsigned long getCode() const
Get the status code by value.
bool checked() const
Has the StatusCode been checked?
bool isSuccess() const
Test for a status code of SUCCESS.
bool m_checked
If the Status code has been checked.
static GAUDI_API void enableChecking()
std::ostream & operator<<(std::ostream &s, const StatusCode &sc)
bool isFailure() const
Test for a status code of FAILURE.
friend bool operator<(const StatusCode &a, const StatusCode &b)
Comparison operator.
This class is used for returning status codes from appropriate routines.
Simple RAII class to ignore unchecked StatusCode instances in a scope.
The IMessage is the interface implemented by the message service.
static bool s_checking
Global flag to control if StatusCode need to be checked.
unsigned long d_code
The status code.
bool isRecoverable() const
StatusCode(const StatusCode &rhs)
StatusCode & operator=(const StatusCode &rhs)
static GAUDI_API void disableChecking()
friend bool operator>(const StatusCode &a, const StatusCode &b)
Comparison operator.
StatusCode(StatusCode &&rhs) noexcept
Move constructor.
void setChecked() const
Ignore the checking code;.
StatusCode & operator=(unsigned long value)
Assignment operator.