CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
QueryHandler.hh
Go to the documentation of this file.
1 #ifndef CASM_QueryHandler
2 #define CASM_QueryHandler
3 
4 #include <map>
5 #include <memory>
6 
9 
10 namespace CASM {
11 
12  class ProjectSettings;
13 
14  template<typename DataObject>
15  struct QueryTraits {};
16 
17  template<typename _DataObject>
19 
20  public:
21 
22  typedef _DataObject DataObject;
23 
25 
26  ~QueryHandler();
27 
29 
31 
35  void set_selected(const typename QueryTraits<DataObject>::Selected &selection);
36 
40  void set_selected(const typename QueryTraits<DataObject>::Selection &selection);
41 
46  void add_alias(const std::string &alias_name, const std::string &alias_command);
47 
52  const std::map<std::string, std::string> &aliases() const {
53  return m_aliases;
54  }
55 
56  std::unique_ptr<QueryHandler<DataObject> > clone() const {
57  return std::unique_ptr<QueryHandler<DataObject> >(this->_clone());
58  }
59 
60  private:
61 
66  std::map<std::string, std::string> &_aliases() {
67  return m_aliases;
68  }
69 
70  QueryHandler<DataObject> *_clone() const override {
71  return new QueryHandler<DataObject>(*this);
72  }
73 
75 
76  std::map<std::string, std::string> m_aliases;
77 
79 
80  std::map<std::string, std::shared_ptr<RuntimeLibrary> > m_lib;
81 
82  };
83 
85  template<typename DataFormatterDictInserter, typename RuntimeLibInserter>
86  std::pair<DataFormatterDictInserter, RuntimeLibInserter>
88  const ProjectSettings &set,
89  DataFormatterDictInserter dict_it,
90  RuntimeLibInserter lib_it);
91 
92 }
93 
94 #endif
_DataObject DataObject
Definition: QueryHandler.hh:22
std::map< std::string, std::string > & _aliases()
Access aliases map.
Definition: QueryHandler.hh:66
Main CASM namespace.
Definition: complete.cpp:8
QueryHandler(const ProjectSettings &set)
ProjectSettings & set
Definition: settings.cc:103
Read/modify settings of an already existing CASM project.
void set_selected(const typename QueryTraits< DataObject >::Selected &selection)
Set the selection to be used for the 'selected' column.
DataFormatterDictionary< DataObject > m_dict
Definition: QueryHandler.hh:78
std::pair< DataFormatterDictInserter, RuntimeLibInserter > load_query_plugins(const ProjectSettings &set, DataFormatterDictInserter dict_it, RuntimeLibInserter lib_it)
Load enumerator plugins from a CASM project.
DataFormatterDictionary< DataObject > & dict()
void add_alias(const std::string &alias_name, const std::string &alias_command)
Add user-defined query alias.
const ProjectSettings * m_set
Definition: QueryHandler.hh:74
std::unique_ptr< QueryHandler< DataObject > > clone() const
Definition: QueryHandler.hh:56
std::map< std::string, std::shared_ptr< RuntimeLibrary > > m_lib
Definition: QueryHandler.hh:80
const std::map< std::string, std::string > & aliases() const
const Access aliases map
Definition: QueryHandler.hh:52
std::map< std::string, std::string > m_aliases
Definition: QueryHandler.hh:76
QueryHandler< DataObject > * _clone() const override
Definition: QueryHandler.hh:70