www.mooseframework.org
GuaranteeProvider.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 // STL includes
13 #include <map>
14 
15 // MOOSE includes
16 #include "MooseTypes.h"
17 #include "Guarantee.h"
18 
19 class MooseObject;
20 
26 {
27 public:
28  GuaranteeProvider(const MooseObject * moose_object);
29 
30  bool hasGuarantee(const MaterialPropertyName & prop_name, Guarantee guarantee);
31 
32 protected:
33  void issueGuarantee(const MaterialPropertyName & prop_name, Guarantee guarantee);
34  void revokeGuarantee(const MaterialPropertyName & prop_name, Guarantee guarantee);
35 
36 private:
37  std::map<MaterialPropertyName, std::set<Guarantee>> _guarantees;
38 };
39 
GuaranteeProvider(const MooseObject *moose_object)
Add-on class that provides the functionality to issue guarantees for declared material properties...
void issueGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
std::map< MaterialPropertyName, std::set< Guarantee > > _guarantees
bool hasGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
void revokeGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
Guarantee
Enum values for guarantees that can be demanded for material properties.
Definition: Guarantee.h:16