https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ExecFlagRegistry.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "ExecFlagEnum.h"
13
14namespace moose
15{
16namespace internal
17{
18
23{
24public:
31 const ExecFlagType & registerFlag(const std::string & name, const bool is_default);
32
36 const ExecFlagEnum & getFlags() const { return _flags; };
37
41 const ExecFlagEnum & getDefaultFlags() const { return _default_flags; };
42
45
49
53
54private:
55 // Private constructor for singleton pattern
57
60
63};
64
65} // internal
66} // moose
67
68#define registerExecFlag(flag) \
69 moose::internal::ExecFlagRegistry::getExecFlagRegistry().registerFlag(flag, false)
70#define registerDefaultExecFlag(flag) \
71 moose::internal::ExecFlagRegistry::getExecFlagRegistry().registerFlag(flag, true)
A MultiMooseEnum object to hold "execute_on" flags.
Class for containing MooseEnum item information.
Registry for statically defining execute flags with consistent numbering.
const ExecFlagEnum & getFlags() const
const ExecFlagEnum & getDefaultFlags() const
ExecFlagRegistry & operator=(ExecFlagRegistry const &)=delete
ExecFlagRegistry & operator=(ExecFlagRegistry &&)=delete
ExecFlagEnum _default_flags
The default flags.
ExecFlagRegistry(ExecFlagRegistry const &)=delete
Don't allow creation through copy/move construction or assignment.
ExecFlagEnum _flags
The registered flags.
static ExecFlagRegistry & getExecFlagRegistry()
Return Singleton instance.
const ExecFlagType & registerFlag(const std::string &name, const bool is_default)
Registers an execute flag.
ExecFlagRegistry(ExecFlagRegistry &&)=delete