| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Static Protected Attributes | Friends | List of all members
StatusCode Class Reference

This class is used for returning status codes from appropriate routines. More...

`#include <GaudiKernel/StatusCode.h>`

## Public Types
enum | { FAILURE = 0, SUCCESS = 1, RECOVERABLE = 2 }

## Public Member Functions
| StatusCode ()
| Constructor.
| StatusCode (unsigned long code, const IssueSeverity &sev)
| StatusCode (unsigned long code, bool checked=false)
| StatusCode (const StatusCode &rhs)
GAUDI_API | ~StatusCode ()
| Destructor.
bool | isSuccess () const
| Test for a status code of SUCCESS.
bool | isFailure () const
| Test for a status code of FAILURE.
bool | isRecoverable () const
unsigned long | getCode () const
| Get the status code by value.
void | setCode (unsigned long value)
| Set the status code by value.
void | setChecked () const
| Ignore the checking code;.
void | ignore () const
| operator unsigned long () const
| Cast operator.
GAUDI_API const IssueSeverity & | severity () const
| Severity.
StatusCode & | operator= (unsigned long value)
| Assignment operator.
StatusCode & | operator= (const StatusCode &rhs)
| operator IgnoreError () const

## Static Public Member Functions
static GAUDI_API void | enableChecking ()
static GAUDI_API void | disableChecking ()

## Protected Types
typedef boost::shared_ptr < IssueSeverity > | SeverityPtr

## Protected Attributes
unsigned long | d_code
| The status code.
bool | m_checked
| If the Status code has been checked.
SeverityPtr | m_severity
| Pointer to a IssueSeverity.

## Static Protected Attributes
static bool | s_checking
| Global flag to control if StatusCode need to be checked.

## Friends
bool | operator< (const StatusCode &a, const StatusCode &b)
| Comparison operator.
bool | operator> (const StatusCode &a, const StatusCode &b)
| Comparison operator.

## Detailed Description

This class is used for returning status codes from appropriate routines.

Author
  Iain Last
  Pere Mato
  Sebastien Ponce

Definition at line 30 of file StatusCode.h.

## Member Typedef Documentation

typedef boost::shared_ptr<IssueSeverity> StatusCode::SeverityPtr
| protected

Definition at line 147 of file StatusCode.h.

## Member Enumeration Documentation

anonymous enum

Enumerator:

  FAILURE |
  SUCCESS |
  RECOVERABLE |

Definition at line 32 of file StatusCode.h.

{
FAILURE = 0,
SUCCESS = 1,
RECOVERABLE = 2
};

## Constructor & Destructor Documentation

StatusCode::StatusCode | ( |  | ) |
| inline

Constructor.

Definition at line 39 of file StatusCode.h.

:
d_code(SUCCESS), m_checked(false), m_severity() {}

StatusCode::StatusCode | ( | unsigned long | code,
|  | const IssueSeverity & | sev
| ) |  |
| inline

Definition at line 41 of file StatusCode.h.

:
d_code(code),m_checked(false), m_severity() {
try { // ensure that we do not throw even if the we cannot copy the severity
m_severity = SeverityPtr(new IssueSeverity(sev));
}
catch (...) {}
}

StatusCode::StatusCode | ( | unsigned long | code,
|  | bool | checked = `false`
| ) |  |
| inline

Definition at line 48 of file StatusCode.h.

:
d_code(code),m_checked(checked), m_severity() {}

StatusCode::StatusCode | ( | const StatusCode & | rhs | ) |
| inline

Definition at line 51 of file StatusCode.h.

:
d_code(rhs.d_code), m_checked(rhs.m_checked),
m_severity(rhs.m_severity)
{ rhs.m_checked = true; }

StatusCode::~StatusCode | ( |  | ) |

Destructor.

: (MCl) use backTrace(std::string&, const int, const int) instead

Definition at line 33 of file StatusCode.cpp.

{
if(UNLIKELY(s_checking)) {
if (!m_checked && !GaudiException::s_proc && !std::uncaught_exception() ) {
SmartIF<IMessageSvc> msg(Gaudi::svcLocator());
SmartIF<IStatusCodeSvc> scs(Gaudi::svcLocator()->service("StatusCodeSvc"));
const size_t depth = 21;
void* addresses[depth];
std::string lib, fnc;
void* addr = 0;
if (System::backTrace(addresses, depth)) {
if (System::getStackLevel(addresses[2], addr, fnc, lib)) {
if (scs) {
scs->regFnc(fnc,lib);
} else {
if (msg) {
MsgStream log(msg,"StatusCode");
log << MSG::WARNING << "Unchecked in " << fnc << " " << lib << endmsg;
} else {
std::cout << MSG::WARNING << "Unchecked in " << fnc << " " << lib << std::endl;
}
}
}
}
}
}
}

## Member Function Documentation

void StatusCode::disableChecking | ( |  | ) |
| static

Definition at line 23 of file StatusCode.cpp.

{
s_checking = false;
}

void StatusCode::enableChecking | ( |  | ) |
| static

Definition at line 19 of file StatusCode.cpp.

{
s_checking = true;
}

unsigned long StatusCode::getCode | ( |  | ) | const
| inline

Get the status code by value.

Definition at line 79 of file StatusCode.h.

{
m_checked = true;
return d_code;
}

void StatusCode::ignore | ( |  | ) | const
| inline

Definition at line 94 of file StatusCode.h.

{ setChecked(); }

bool StatusCode::isFailure | ( |  | ) | const
| inline

Test for a status code of FAILURE.

N.B. This is a specific type of failure where there aren't any more appropriate status codes. To test for any failure use : if ( !StatusCode.isSuccess() ) ...

Definition at line 72 of file StatusCode.h.

{ return !isSuccess(); }

bool StatusCode::isRecoverable | ( |  | ) | const
| inline

Definition at line 73 of file StatusCode.h.

{
m_checked = true;
return (d_code == RECOVERABLE);
}

bool StatusCode::isSuccess | ( |  | ) | const
| inline

Test for a status code of SUCCESS.

N.B. This is the only case where a function has succeeded.

Definition at line 62 of file StatusCode.h.

{
m_checked = true;
return (d_code == SUCCESS);
}

StatusCode::operator IgnoreError | ( |  | ) | const
| inline

Definition at line 127 of file StatusCode.h.

{
m_checked = true;
return IgnoreError();
}

StatusCode::operator unsigned long | ( |  | ) | const
| inline

Cast operator.

Definition at line 97 of file StatusCode.h.

{ return getCode(); }

StatusCode& StatusCode::operator= | ( | unsigned long | value | ) |
| inline

Assignment operator.

Definition at line 103 of file StatusCode.h.

{
setCode(value);
return *this;
}

StatusCode& StatusCode::operator= | ( | const StatusCode & | rhs | ) |
| inline

Definition at line 107 of file StatusCode.h.

{
if (this == &rhs) return *this; // Protection against self-assignment
d_code = rhs.d_code;
m_checked = rhs.m_checked;
rhs.m_checked = true;
m_severity = rhs.m_severity;
return *this;
}

void StatusCode::setChecked | ( |  | ) | const
| inline

Ignore the checking code;.

Definition at line 91 of file StatusCode.h.

{
m_checked = true;
}

void StatusCode::setCode | ( | unsigned long | value | ) |
| inline

Set the status code by value.

Definition at line 85 of file StatusCode.h.

{
m_checked = false;
d_code = value;
}

const IssueSeverity & StatusCode::severity | ( |  | ) | const

Severity.

Definition at line 27 of file StatusCode.cpp.

{
static IssueSeverity dummy;
if (m_severity) return *m_severity;
else return dummy;
}

## Friends And Related Function Documentation

bool operator< | ( | const StatusCode & | a,
|  | const StatusCode & | b
| ) |  |
| friend

Comparison operator.

Definition at line 117 of file StatusCode.h.

{
return a.d_code < b.d_code;
}

bool operator> | ( | const StatusCode & | a,
|  | const StatusCode & | b
| ) |  |
| friend

Comparison operator.

Definition at line 122 of file StatusCode.h.

{
return a.d_code > b.d_code;
}

## Member Data Documentation

unsigned long StatusCode::d_code
| protected

The status code.

The status code

Definition at line 138 of file StatusCode.h.

bool StatusCode::m_checked
| mutable protected

If the Status code has been checked.

Definition at line 139 of file StatusCode.h.

SeverityPtr StatusCode::m_severity
| protected

Pointer to a IssueSeverity.

Definition at line 149 of file StatusCode.h.

bool StatusCode::s_checking
| static protected

Global flag to control if StatusCode need to be checked.

Definition at line 151 of file StatusCode.h.

The documentation for this class was generated from the following files:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiKernel/GaudiKernel/StatusCode.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiKernel/src/Lib/StatusCode.cpp