| The Gaudi Framework v32r1 (f65d50dc)

Classes | Macros | Functions
StatusCode.h File Reference
`#include "boost/preprocessor/facilities/overload.hpp"`
`#include <ostream>`
`#include <type_traits>`
`#include <utility>`
`#include "GaudiKernel/Kernel.h"`
Include dependency graph for StatusCode.h:

Go to the source code of this file.

## Classes
struct | is_StatusCode_enum< T >
class | StatusCode
| This class is used for returning status codes from appropriate routines. More...
class | StatusCode::Category
| The category assigned to a StatusCode. More...
class | StatusCode::ScopedDisableChecking
| Simple RAII class to ignore unchecked StatusCode instances in a scope. More...

## Macros
#define | STATUSCODE_ENUM_DECL(ENUM)
| Declare an enum to be used as StatusCode value. More...
#define | STATUSCODE_ENUM_IMPL(...) BOOST_PP_OVERLOAD( STATUSCODE_ENUM_IMPL_, __VA_ARGS__ )( __VA_ARGS__ )
| Assign a category to the StatusCode enum declared with STATUSCODE_ENUM_DECL( ENUM ) More...
#define | STATUSCODE_ENUM_IMPL_1(ENUM) const StatusCode::Category& is_StatusCode_enum<ENUM>::instance = StatusCode::default_category();
#define | STATUSCODE_ENUM_IMPL_2(ENUM, CATEGORY) const StatusCode::Category& is_StatusCode_enum<ENUM>::instance = CATEGORY{};

## Functions
bool | operator== (const StatusCode &lhs, const StatusCode &rhs)
StatusCode | operator & (StatusCode lhs, const StatusCode &rhs)
| Ternary AND operator. More...
StatusCode | operator| (StatusCode lhs, const StatusCode &rhs)
| Ternary OR operator. More...
bool & | operator&= (bool &lhs, const StatusCode &sc)
| Boolean AND assignment operator. More...
bool & | operator|= (bool &lhs, const StatusCode &sc)
| Boolean OR assignment operator. More...

## Macro Definition Documentation

## ◆ STATUSCODE_ENUM_DECL

#define STATUSCODE_ENUM_DECL | ( |  | ENUM | ) |

Value:
template <> \
struct is_StatusCode_enum<ENUM> : std::true_type { \
static const StatusCode::Category& instance; \
};
StatusCode::Category
The category assigned to a StatusCode.
Definition: StatusCode.h:63
is_StatusCode_enum
Definition: StatusCode.h:12
std::true_type

Declare an enum to be used as StatusCode value.

Parameters

  ENUM | enum class

Definition at line 239 of file StatusCode.h.

## ◆ STATUSCODE_ENUM_IMPL

#define STATUSCODE_ENUM_IMPL | ( |  | ... | ) | BOOST_PP_OVERLOAD( STATUSCODE_ENUM_IMPL_, __VA_ARGS__ )( __VA_ARGS__ )

Assign a category to the StatusCode enum declared with STATUSCODE_ENUM_DECL( ENUM )

Parameters

  ENUM | enum class
  CATEGORY | (optional) category, otherwise use default StatusCode category

Definition at line 248 of file StatusCode.h.

## ◆ STATUSCODE_ENUM_IMPL_1

#define STATUSCODE_ENUM_IMPL_1 | ( |  | ENUM | ) | const StatusCode::Category& is_StatusCode_enum<ENUM>::instance = StatusCode::default_category();

Definition at line 250 of file StatusCode.h.

## ◆ STATUSCODE_ENUM_IMPL_2

#define STATUSCODE_ENUM_IMPL_2 | ( |  | ENUM,
|  |  | CATEGORY
| ) |  | const StatusCode::Category& is_StatusCode_enum<ENUM>::instance = CATEGORY{};

Definition at line 253 of file StatusCode.h.

## Function Documentation

## ◆ operator &()

StatusCode operator & | ( | StatusCode | lhs,
|  | const StatusCode & | rhs
| ) |  |
| inline

Ternary AND operator.

Definition at line 316 of file StatusCode.h.

316 { return lhs &= rhs; }

## ◆ operator&=()

bool& operator&= | ( | bool & | lhs,
|  | const StatusCode & | sc
| ) |  |
| inline

Boolean AND assignment operator.

Definition at line 322 of file StatusCode.h.

322 { return lhs &= sc.isSuccess(); }
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267

## ◆ operator==()

bool operator== | ( | const StatusCode & | lhs,
|  | const StatusCode & | rhs
| ) |  |
| inline

Note
  For code values `0(FAILURE)` and `1(SUCCESS)` the category is ignored
  e.g. `sc==StatusCode::SUCCESS` is equivalent to `sc.isSuccess()` for all categories

Definition at line 284 of file StatusCode.h.

284 {
285 lhs.m_checked = true;
286 rhs.m_checked = true;
287 return ( lhs.m_code == rhs.m_code ) &&
288 ( lhs.m_code == static_cast<StatusCode::code_t>( StatusCode::ErrorCode::SUCCESS ) ||
289 lhs.m_code == static_cast<StatusCode::code_t>( StatusCode::ErrorCode::FAILURE ) ||
290 ( lhs.m_cat == rhs.m_cat ) );
291 }
StatusCode::m_code
code_t m_code
The status code value.
Definition: StatusCode.h:225
StatusCode::m_checked
bool m_checked
If the StatusCode has been checked.
Definition: StatusCode.h:226
StatusCode::ErrorCode::SUCCESS
StatusCode::ErrorCode::FAILURE
StatusCode::m_cat
const Category * m_cat
The status code category.
Definition: StatusCode.h:224

## ◆ operator|()

StatusCode operator| | ( | StatusCode | lhs,
|  | const StatusCode & | rhs
| ) |  |
| inline

Ternary OR operator.

Definition at line 319 of file StatusCode.h.

319 { return lhs |= rhs; }

## ◆ operator|=()

bool& operator|= | ( | bool & | lhs,
|  | const StatusCode & | sc
| ) |  |
| inline

Boolean OR assignment operator.

Definition at line 325 of file StatusCode.h.

325 { return lhs |= sc.isSuccess(); }
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267