Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::DefaultBackwardMng Class Reference

#include <arcane/impl/DefaultBackwardMng.h>

Inheritance diagram for Arcane::DefaultBackwardMng:
Collaboration diagram for Arcane::DefaultBackwardMng:

Public Member Functions

 DefaultBackwardMng (ITraceMng *trace, ISubDomain *sub_domain)
void init () override
 Initialization of the backward manager.
void beginAction () override
 Indicates that the save/restore actions have started.
void endAction () override
 Indicates that the save/restore actions are finished.
void setSavePeriod (Integer n) override
Integer savePeriod () const override
void goBackward () override
 Signals that a backward rollback is desired.
bool isLocked () const override
 Indicates if the backward rollback saves are locked.
bool isBackwardEnabled () const override
 Indicates if a backward rollback is scheduled.
void clear () override
 Deletes resources associated with the backward rollback.
virtual bool checkAndApplyRestore () override
 Checks and applies restoration if necessary.
virtual bool checkAndApplySave (bool is_forced) override
 Checks and applies variable saving if necessary. If is_forced is true, forces the save.

Private Types

enum  eSequence {
  SEQSave , SEQForceSave , SEQRestore , SEQLock ,
  SEQNothing
}

Private Member Functions

void _restore ()
void _save ()
void _checkValidAction ()
void _checkSave (bool is_forced)

Private Attributes

ITraceMngm_trace
ISubDomainm_sub_domain
IVariableFilterm_filter
IDataReaderWriterm_data_io
Real m_backward_time
 Time of the last requested backward action.
Integer m_period
 Period between two saves for backward tracking.
bool m_first_save
 First save.
bool m_action_refused
 Actions allowed?
eSequence m_sequence
 Sequence.

Additional Inherited Members

Public Types inherited from Arcane::IBackwardMng
enum  eAction { Save , Restore }

Detailed Description

Default implementation of a backward strategy.

Definition at line 37 of file DefaultBackwardMng.h.

Member Enumeration Documentation

◆ eSequence

Enumerator
SEQSave 

Save.

SEQForceSave 

Forced save.

SEQRestore 

Restore.

SEQLock 

Lock.

SEQNothing 

Nothing.

Definition at line 42 of file DefaultBackwardMng.h.

Constructor & Destructor Documentation

◆ DefaultBackwardMng()

Arcane::DefaultBackwardMng::DefaultBackwardMng ( ITraceMng * trace,
ISubDomain * sub_domain )

Definition at line 56 of file DefaultBackwardMng.cc.

◆ ~DefaultBackwardMng()

Arcane::DefaultBackwardMng::~DefaultBackwardMng ( )

Definition at line 79 of file DefaultBackwardMng.cc.

Member Function Documentation

◆ _checkSave()

void Arcane::DefaultBackwardMng::_checkSave ( bool is_forced)
private

Definition at line 217 of file DefaultBackwardMng.cc.

◆ _checkValidAction()

void Arcane::DefaultBackwardMng::_checkValidAction ( )
private

Definition at line 119 of file DefaultBackwardMng.cc.

◆ _restore()

void Arcane::DefaultBackwardMng::_restore ( )
private

Definition at line 166 of file DefaultBackwardMng.cc.

◆ _save()

void Arcane::DefaultBackwardMng::_save ( )
private

Definition at line 179 of file DefaultBackwardMng.cc.

◆ beginAction()

void Arcane::DefaultBackwardMng::beginAction ( )
overridevirtual

Indicates that the save/restore actions have started.

Implements Arcane::IBackwardMng.

Definition at line 204 of file DefaultBackwardMng.cc.

References m_action_refused.

◆ checkAndApplyRestore()

bool Arcane::DefaultBackwardMng::checkAndApplyRestore ( )
overridevirtual

Checks and applies restoration if necessary.

Return values
trueif a restoration is performed.

Implements Arcane::IBackwardMng.

Definition at line 129 of file DefaultBackwardMng.cc.

References m_sequence, and SEQRestore.

◆ checkAndApplySave()

bool Arcane::DefaultBackwardMng::checkAndApplySave ( bool is_forced)
overridevirtual

Checks and applies variable saving if necessary. If is_forced is true, forces the save.

Return values
trueif a save is performed.

Implements Arcane::IBackwardMng.

Definition at line 143 of file DefaultBackwardMng.cc.

References m_action_refused, m_sequence, SEQForceSave, and SEQSave.

◆ clear()

void Arcane::DefaultBackwardMng::clear ( )
overridevirtual

Deletes resources associated with the backward rollback.

This method is called to deallocate resources such as variable saves. This method is called among other things before a load balancing because it will not be possible to perform a backward rollback before this balancing.

Implements Arcane::IBackwardMng.

Definition at line 90 of file DefaultBackwardMng.cc.

◆ endAction()

void Arcane::DefaultBackwardMng::endAction ( )
overridevirtual

Indicates that the save/restore actions are finished.

Implements Arcane::IBackwardMng.

Definition at line 264 of file DefaultBackwardMng.cc.

◆ goBackward()

void Arcane::DefaultBackwardMng::goBackward ( )
overridevirtual

Signals that a backward rollback is desired.

The backward rollback will occur when checkAndApplyRestore() is called.

Generally, this method should not be called directly but rather ITimeLoopMng::goBackward().

From the call to this method until the effective action of the backward rollback when calling checkAndApplyRestore(), isBackwardEnabled() returns true.

Implements Arcane::IBackwardMng.

Definition at line 99 of file DefaultBackwardMng.cc.

References m_action_refused, m_sequence, and SEQRestore.

◆ init()

void Arcane::DefaultBackwardMng::init ( )
inlineoverridevirtual

Initialization of the backward manager.

Implements Arcane::IBackwardMng.

Definition at line 61 of file DefaultBackwardMng.h.

◆ isBackwardEnabled()

bool Arcane::DefaultBackwardMng::isBackwardEnabled ( ) const
inlineoverridevirtual

Indicates if a backward rollback is scheduled.

See also
goBackward().

Implements Arcane::IBackwardMng.

Definition at line 74 of file DefaultBackwardMng.h.

References m_sequence, and SEQRestore.

◆ isLocked()

bool Arcane::DefaultBackwardMng::isLocked ( ) const
inlineoverridevirtual

Indicates if the backward rollback saves are locked.

isLocked() is true if it is not possible to perform a save. This is the case, for example, when a backward rollback has been performed at iteration M to iteration N and we have not yet returned to iteration M.

Implements Arcane::IBackwardMng.

Definition at line 72 of file DefaultBackwardMng.h.

References m_sequence, and SEQLock.

◆ savePeriod()

Integer Arcane::DefaultBackwardMng::savePeriod ( ) const
inlineoverridevirtual

Implements Arcane::IBackwardMng.

Definition at line 68 of file DefaultBackwardMng.h.

◆ setSavePeriod()

void Arcane::DefaultBackwardMng::setSavePeriod ( Integer n)
inlineoverridevirtual

Implements Arcane::IBackwardMng.

Definition at line 67 of file DefaultBackwardMng.h.

Member Data Documentation

◆ m_action_refused

bool Arcane::DefaultBackwardMng::m_action_refused
private

Actions allowed?

Definition at line 104 of file DefaultBackwardMng.h.

Referenced by beginAction(), checkAndApplySave(), and goBackward().

◆ m_backward_time

Real Arcane::DefaultBackwardMng::m_backward_time
private

Time of the last requested backward action.

Definition at line 95 of file DefaultBackwardMng.h.

◆ m_data_io

IDataReaderWriter* Arcane::DefaultBackwardMng::m_data_io
private

Definition at line 92 of file DefaultBackwardMng.h.

◆ m_filter

IVariableFilter* Arcane::DefaultBackwardMng::m_filter
private

Definition at line 91 of file DefaultBackwardMng.h.

◆ m_first_save

bool Arcane::DefaultBackwardMng::m_first_save
private

First save.

Definition at line 101 of file DefaultBackwardMng.h.

◆ m_period

Integer Arcane::DefaultBackwardMng::m_period
private

Period between two saves for backward tracking.

Definition at line 98 of file DefaultBackwardMng.h.

◆ m_sequence

eSequence Arcane::DefaultBackwardMng::m_sequence
private

◆ m_sub_domain

ISubDomain* Arcane::DefaultBackwardMng::m_sub_domain
private

Definition at line 90 of file DefaultBackwardMng.h.

◆ m_trace

ITraceMng* Arcane::DefaultBackwardMng::m_trace
private

Definition at line 89 of file DefaultBackwardMng.h.


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