IOSS 2.0

Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
Ioss::SerializeIO Class Reference

Class `SerializeIO` is a sentry class which performs serialization for mesh database I/O. More...

`#include <Ioss_SerializeIO.h>`

Collaboration diagram for Ioss::SerializeIO:
[legend]

## Public Member Functions
| SerializeIO (const DatabaseIO *database_io)
| SerializeIO (const SerializeIO &from)=delete
SerializeIO & | operator= (const SerializeIO &from)=delete
| ~SerializeIO ()

## Static Public Member Functions
static int | getOwner ()
static int | getRank ()
static int | getSize ()
static int | getGroupRank ()
static int | getGroupSize ()
static void | setGroupFactor (int factor)
static bool | isEnabled ()
static bool | inBarrier ()
static bool | inMyGroup ()

## Private Attributes
const DatabaseIO * | m_databaseIO
| Database I/O pointer. More...
bool | m_activeFallThru
| No barries since my group is running. More...
int | m_manualOwner
| Manually specified owner. More...

## Static Private Attributes
static int | s_groupFactor = 0
| Grouping factor. More...
static int | s_size = -1
| Number of processors. More...
static int | s_rank = -1
| My processor rank. More...
static int | s_groupSize = -1
| Number of groups. More...
static int | s_groupRank = -1
| My group rank. More...
static int | s_owner = -1
| Group currently running. More...

## Detailed Description

Class `SerializeIO` is a sentry class which performs serialization for mesh database I/O.

This sentry guards serialization of parallel I/O routines. At construction, it blocks the processes via an MPI barrier, releasing them to execute in groups specified by `s_groupSize`. At destruction, it continues to block via MPI barriers until all the processor have been released by the constructor.

In the case where the constructor is called, and the sentry is already active and owned by the processes group, the constructor and destrutor simply fall through since the serialization is already in place at a higher level.

The MPI

## Constructor & Destructor Documentation

## ◆ SerializeIO() [1/2]

Ioss::SerializeIO::SerializeIO | ( | const DatabaseIO * | database_io | ) |
| explicit

Creates a new `SerializeIO` instance.

Parameters

  database_io | a `DatabaseIO` variable ...

## ◆ SerializeIO() [2/2]

Ioss::SerializeIO::SerializeIO | ( | const SerializeIO & | from | ) |
| delete

## ◆ ~SerializeIO()

Ioss::SerializeIO::~SerializeIO | ( |  | ) |

## Member Function Documentation

## ◆ getGroupRank()

static int Ioss::SerializeIO::getGroupRank | ( |  | ) |
| inline static

## ◆ getGroupSize()

static int Ioss::SerializeIO::getGroupSize | ( |  | ) |
| inline static

## ◆ getOwner()

static int Ioss::SerializeIO::getOwner | ( |  | ) |
| inline static

## ◆ getRank()

static int Ioss::SerializeIO::getRank | ( |  | ) |
| inline static

## ◆ getSize()

static int Ioss::SerializeIO::getSize | ( |  | ) |
| inline static

## ◆ inBarrier()

static bool Ioss::SerializeIO::inBarrier | ( |  | ) |
| inline static

## ◆ inMyGroup()

static bool Ioss::SerializeIO::inMyGroup | ( |  | ) |
| inline static

## ◆ isEnabled()

static bool Ioss::SerializeIO::isEnabled | ( |  | ) |
| inline static

## ◆ operator=()

SerializeIO& Ioss::SerializeIO::operator= | ( | const SerializeIO & | from | ) |
| delete

## ◆ setGroupFactor()

void Ioss::SerializeIO::setGroupFactor | ( | int | factor | ) |
| static

## Member Data Documentation

## ◆ m_activeFallThru

bool Ioss::SerializeIO::m_activeFallThru
| private

No barries since my group is running.

## ◆ m_databaseIO

const DatabaseIO* Ioss::SerializeIO::m_databaseIO
| private

Database I/O pointer.

## ◆ m_manualOwner

int Ioss::SerializeIO::m_manualOwner
| private

Manually specified owner.

## ◆ s_groupFactor

int Ioss::SerializeIO::s_groupFactor = 0
| static private

Grouping factor.

## ◆ s_groupRank

int Ioss::SerializeIO::s_groupRank = -1
| static private

My group rank.

## ◆ s_groupSize

int Ioss::SerializeIO::s_groupSize = -1
| static private

Number of groups.

## ◆ s_owner

int Ioss::SerializeIO::s_owner = -1
| static private

Group currently running.

## ◆ s_rank

int Ioss::SerializeIO::s_rank = -1
| static private

My processor rank.

## ◆ s_size

int Ioss::SerializeIO::s_size = -1
| static private

Number of processors.

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

- src/Ioss_SerializeIO.h
- src/Ioss_SerializeIO.C