CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
EnumeratorHandler.hh
Go to the documentation of this file.
1 #ifndef CASM_EnumeratorHandler
2 #define CASM_EnumeratorHandler
3 
4 #include <map>
5 #include <memory>
6 
9 
10 namespace CASM {
11 
12  class ProjectSettings;
13 
15 
16  public:
17 
19 
21  // order of deletion matters
23  m_lib.clear();
24  }
25 
27  return m_enumerator;
28  }
29 
30  const EnumeratorMap &map() const {
31  return m_enumerator;
32  }
33 
34  private:
35 
37 
39 
40  std::map<std::string, std::shared_ptr<RuntimeLibrary> > m_lib;
41 
42  };
43 
45  template<typename EnumeratorMapInserter, typename RuntimeLibInserter>
46  std::pair<EnumeratorMapInserter, RuntimeLibInserter>
48  const ProjectSettings &set,
49  EnumeratorMapInserter enum_it,
50  RuntimeLibInserter lib_it);
51 
52 }
53 
54 #endif
EnumeratorHandler(const ProjectSettings &set)
std::map< std::string, std::shared_ptr< RuntimeLibrary > > m_lib
Main CASM namespace.
Definition: complete.cpp:8
ProjectSettings & set
Definition: settings.cc:103
Read/modify settings of an already existing CASM project.
const ProjectSettings * m_set
std::map wrapper to enforce a 1-1 ValueType->KeyType relationship
Definition: unique_map.hh:141
const EnumeratorMap & map() const
std::pair< EnumeratorMapInserter, RuntimeLibInserter > load_enumerator_plugins(const ProjectSettings &set, EnumeratorMapInserter enum_it, RuntimeLibInserter lib_it)
Load enumerator plugins from a CASM project.