# FoundationClasses
TKernel
Message

# Message_ExecStatus Class Reference

`#include <Message_ExecStatus.hxx>`

## Advanced: Iteration and analysis of status flags

enum | StatusRange { FirstStatus = 1, StatusesPerType = 32, NbStatuses = 128, LastStatus = 129 }
| Definitions of range of available statuses. More...
static Standard_Integer | StatusIndex (Message_Status status)
| Returns index of status in whole range [FirstStatus, LastStatus].
static Standard_Integer | LocalStatusIndex (Message_Status status)
| Returns index of status inside type of status (Done or Warn or, etc) in range [1, StatusesPerType].
static Message_StatusType | TypeOfStatus (Message_Status status)
| Returns status type (DONE, WARN, ALARM, or FAIL).
static Message_Status | StatusByIndex (const Standard_Integer theIndex)
| Returns status with index theIndex in whole range [FirstStatus, LastStatus].

## Public Member Functions

Creation and simple operations with statuses
| Message_ExecStatus ()
| Create empty execution status.
| Message_ExecStatus (Message_Status status)
| Initialise the execution status.
void | Set (Message_Status status)
| Sets a status flag.
Standard_Boolean | IsSet (Message_Status status) const
| Check status for being set.
void | Clear (Message_Status status)
| Clear one status.
Advanced: Group operations (useful for analysis)
Standard_Boolean | IsDone () const
| Check if at least one status of each type is set.
Standard_Boolean | IsFail () const
| Check if at least one status of each type is set.
Standard_Boolean | IsWarn () const
| Check if at least one status of each type is set.
Standard_Boolean | IsAlarm () const
| Check if at least one status of each type is set.
void | SetAllDone ()
| Set all statuses of each type.
void | SetAllWarn ()
| Check if at least one status of each type is set.
void | SetAllAlarm ()
| Check if at least one status of each type is set.
void | SetAllFail ()
| Check if at least one status of each type is set.
void | ClearAllDone ()
| Clear all statuses of each type.
void | ClearAllWarn ()
| Check if at least one status of each type is set.
void | ClearAllAlarm ()
| Check if at least one status of each type is set.
void | ClearAllFail ()
| Check if at least one status of each type is set.
void | Clear ()
| Clear all statuses.
void | Add (const Message_ExecStatus &theOther)
| Add statuses to me from theOther execution status.
const Message_ExecStatus & | operator|= (const Message_ExecStatus &theOther)
| Check if at least one status of each type is set.
void | And (const Message_ExecStatus &theOther)
| Leave only the statuses common with theOther.
const Message_ExecStatus & | operator &= (const Message_ExecStatus &theOther)
| Check if at least one status of each type is set.

## Private Types

enum | StatusMask { MType = 0x0000ff00, MIndex = 0x000000ff }
| Mask to separate bits indicating status type and index within the type. More...

## Static Private Member Functions

static int | getBitFlag (int status)

## Private Attributes

Standard_Integer | myDone
Standard_Integer | myWarn
Standard_Integer | myAlarm
Standard_Integer | myFail

## Detailed Description

Tiny class for extended handling of error / execution status of algorithm in universal way.

It is in fact a set of integers represented as a collection of bit flags for each of four types of status; each status flag has its own symbolic name and can be set/tested individually.

The flags are grouped in semantic groups:

- No flags means nothing done
- Done flags correspond to some operation succesffuly completed
- Warning flags correspond to warning messages on some potentially wrong situation, not harming algorithm execution
- Alarm flags correspond to more severe warnings about incorrect user data, while not breaking algorithm execution
- Fail flags correspond to cases when algorithm failed to complete

## Member Enumeration Documentation

enum Message_ExecStatus::StatusMask `[private]`

Enumeration values:

  MType |
  MIndex |

enum Message_ExecStatus::StatusRange

Enumeration values:

  FirstStatus |
  StatusesPerType |
  NbStatuses |
  LastStatus |

## Constructor & Destructor Documentation

Message_ExecStatus::Message_ExecStatus | ( |  | ) | `[inline]`

Message_ExecStatus::Message_ExecStatus | ( | Message_Status | status | ) | `[inline]`

## Member Function Documentation

void Message_ExecStatus::Add | ( | const Message_ExecStatus & | theOther | ) | `[inline]`

void Message_ExecStatus::And | ( | const Message_ExecStatus & | theOther | ) | `[inline]`

void Message_ExecStatus::Clear | ( |  | ) | `[inline]`

void Message_ExecStatus::Clear | ( | Message_Status | status | ) | `[inline]`

void Message_ExecStatus::ClearAllAlarm | ( |  | ) | `[inline]`

void Message_ExecStatus::ClearAllDone | ( |  | ) | `[inline]`

void Message_ExecStatus::ClearAllFail | ( |  | ) | `[inline]`

void Message_ExecStatus::ClearAllWarn | ( |  | ) | `[inline]`

static int Message_ExecStatus::getBitFlag | ( | int | status | ) | `[inline, static, private]`

Standard_Boolean Message_ExecStatus::IsAlarm | ( |  | ) | const`[inline]`

Standard_Boolean Message_ExecStatus::IsDone | ( |  | ) | const`[inline]`

Standard_Boolean Message_ExecStatus::IsFail | ( |  | ) | const`[inline]`

Standard_Boolean Message_ExecStatus::IsSet | ( | Message_Status | status | ) | const`[inline]`

Standard_Boolean Message_ExecStatus::IsWarn | ( |  | ) | const`[inline]`

static Standard_Integer Message_ExecStatus::LocalStatusIndex | ( | Message_Status | status | ) | `[inline, static]`

const Message_ExecStatus& Message_ExecStatus::operator &= | ( | const Message_ExecStatus & | theOther | ) | `[inline]`

const Message_ExecStatus& Message_ExecStatus::operator|= | ( | const Message_ExecStatus & | theOther | ) | `[inline]`

void Message_ExecStatus::Set | ( | Message_Status | status | ) | `[inline]`

void Message_ExecStatus::SetAllAlarm | ( |  | ) | `[inline]`

void Message_ExecStatus::SetAllDone | ( |  | ) | `[inline]`

void Message_ExecStatus::SetAllFail | ( |  | ) | `[inline]`

void Message_ExecStatus::SetAllWarn | ( |  | ) | `[inline]`

static Message_Status Message_ExecStatus::StatusByIndex | ( | const Standard_Integer | theIndex | ) | `[inline, static]`

static Standard_Integer Message_ExecStatus::StatusIndex | ( | Message_Status | status | ) | `[inline, static]`

static Message_StatusType Message_ExecStatus::TypeOfStatus | ( | Message_Status | status | ) | `[inline, static]`

## Field Documentation

Standard_Integer Message_ExecStatus::myAlarm `[private]`

Standard_Integer Message_ExecStatus::myDone `[private]`

Standard_Integer Message_ExecStatus::myFail `[private]`

Standard_Integer Message_ExecStatus::myWarn `[private]`

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

- Message_ExecStatus.hxx