CASM  1.1.0
A Clusters Approach to Statistical Mechanics
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 namespace Completer {
13 class EnumOption;
14 }
15 
16 class RuntimeLibrary;
17 class ProjectSettings;
18 
21  public:
23 
25 
26  EnumInterfaceVector const &get() const { return m_enumerator; }
27 
28  private:
30 
32 
33  std::map<std::string, std::shared_ptr<RuntimeLibrary> > m_lib;
34 };
35 
37 template <typename EnumInterfaceVectorInserter, typename RuntimeLibInserter>
38 std::pair<EnumInterfaceVectorInserter, RuntimeLibInserter>
40  EnumInterfaceVectorInserter enum_it,
41  RuntimeLibInserter lib_it);
42 
43 } // namespace CASM
44 
45 #endif
ProjectSettings const * m_set
std::map< std::string, std::shared_ptr< RuntimeLibrary > > m_lib
EnumInterfaceVector & get()
EnumInterfaceVector m_enumerator
EnumInterfaceVector const & get() const
EnumeratorHandler(ProjectSettings const &set)
Base class for cloning.
#define CLONEABLE_NEEDS_DESTRUCTOR_DEF(T)
Main CASM namespace.
Definition: APICommand.hh:8
std::pair< EnumInterfaceVectorInserter, RuntimeLibInserter > load_enumerator_plugins(ProjectSettings const &set, EnumInterfaceVectorInserter enum_it, RuntimeLibInserter lib_it)
Load enumerator plugins from a CASM project.
std::vector< notstd::cloneable_ptr< EnumInterfaceBase > > EnumInterfaceVector
ProjectSettings & set
Definition: settings.cc:137