https://mooseframework.inl.gov
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
moose::internal::ExecFlagRegistry Class Reference

Registry for statically defining execute flags with consistent numbering. More...

#include <ExecFlagRegistry.h>

Public Member Functions

const ExecFlagTyperegisterFlag (const std::string &name, const bool is_default)
 Registers an execute flag. More...
 
const ExecFlagEnumgetFlags () const
 
const ExecFlagEnumgetDefaultFlags () const
 
 ExecFlagRegistry (ExecFlagRegistry const &)=delete
 Don't allow creation through copy/move construction or assignment. More...
 
ExecFlagRegistryoperator= (ExecFlagRegistry const &)=delete
 
 ExecFlagRegistry (ExecFlagRegistry &&)=delete
 
ExecFlagRegistryoperator= (ExecFlagRegistry &&)=delete
 

Static Public Member Functions

static ExecFlagRegistrygetExecFlagRegistry ()
 Return Singleton instance. More...
 

Private Member Functions

 ExecFlagRegistry ()
 

Private Attributes

ExecFlagEnum _flags
 The registered flags. More...
 
ExecFlagEnum _default_flags
 The default flags. More...
 

Detailed Description

Registry for statically defining execute flags with consistent numbering.

Definition at line 22 of file ExecFlagRegistry.h.

Constructor & Destructor Documentation

◆ ExecFlagRegistry() [1/3]

moose::internal::ExecFlagRegistry::ExecFlagRegistry ( ExecFlagRegistry const &  )
delete

Don't allow creation through copy/move construction or assignment.

◆ ExecFlagRegistry() [2/3]

moose::internal::ExecFlagRegistry::ExecFlagRegistry ( ExecFlagRegistry &&  )
delete

◆ ExecFlagRegistry() [3/3]

moose::internal::ExecFlagRegistry::ExecFlagRegistry ( )
inlineprivate

Definition at line 56 of file ExecFlagRegistry.h.

56 {}

Member Function Documentation

◆ getDefaultFlags()

const ExecFlagEnum& moose::internal::ExecFlagRegistry::getDefaultFlags ( ) const
inline
Returns
The registered default exec flags.

Definition at line 41 of file ExecFlagRegistry.h.

Referenced by MooseUtils::getDefaultExecFlagEnum().

41 { return _default_flags; };
ExecFlagEnum _default_flags
The default flags.

◆ getExecFlagRegistry()

ExecFlagRegistry & moose::internal::ExecFlagRegistry::getExecFlagRegistry ( )
static

Return Singleton instance.

Definition at line 19 of file ExecFlagRegistry.C.

Referenced by MooseUtils::getDefaultExecFlagEnum().

20 {
21  static ExecFlagRegistry exec_flag_registry;
22  return exec_flag_registry;
23 }

◆ getFlags()

const ExecFlagEnum& moose::internal::ExecFlagRegistry::getFlags ( ) const
inline
Returns
The registered exec flags.

Definition at line 36 of file ExecFlagRegistry.h.

36 { return _flags; };
ExecFlagEnum _flags
The registered flags.

◆ operator=() [1/2]

ExecFlagRegistry& moose::internal::ExecFlagRegistry::operator= ( ExecFlagRegistry const &  )
delete

◆ operator=() [2/2]

ExecFlagRegistry& moose::internal::ExecFlagRegistry::operator= ( ExecFlagRegistry &&  )
delete

◆ registerFlag()

const ExecFlagType & moose::internal::ExecFlagRegistry::registerFlag ( const std::string &  name,
const bool  is_default 
)

Registers an execute flag.

Parameters
nameThe name of the execute flag.
is_defaultWhether or not to define the flag as a default (available to all objects that use the SetupInterface).

Definition at line 26 of file ExecFlagRegistry.C.

27 {
28  const auto name_upper = MooseUtils::toUpper(name);
29  const auto flag_iter = _flags.find(name_upper);
30  if (flag_iter != _flags.items().end())
31  {
32  // Assume that this is not a duplicate name, but a "double registration" due
33  // to the dynamic load functionality.
34  return *flag_iter;
35  }
36 
37  const auto & flag = _flags.addAvailableFlags(ExecFlagType(name_upper, _flags.getNextValidID()));
38 
39  if (is_default)
41 
42  return flag;
43 }
int getNextValidID() const
Compute the next valid ID.
std::string toUpper(const std::string &name)
Convert supplied string to upper case.
MooseEnumItem ExecFlagType
Definition: Moose.h:113
void addAvailableFlags(const ExecFlagType &flag, Args... flags)
Add additional execute_on flags to the list of possible flags.
Definition: ExecFlagEnum.h:82
const std::set< ExecFlagType > & items() const
Reference the all the available items.
Definition: ExecFlagEnum.h:71
ExecFlagEnum _flags
The registered flags.
std::set< MooseEnumItem >::const_iterator find(const MooseEnumItem &other) const
Locate an item.
ExecFlagEnum _default_flags
The default flags.

Member Data Documentation

◆ _default_flags

ExecFlagEnum moose::internal::ExecFlagRegistry::_default_flags
private

The default flags.

Definition at line 62 of file ExecFlagRegistry.h.

Referenced by getDefaultFlags(), and registerFlag().

◆ _flags

ExecFlagEnum moose::internal::ExecFlagRegistry::_flags
private

The registered flags.

Definition at line 59 of file ExecFlagRegistry.h.

Referenced by getFlags(), and registerFlag().


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