#include <InfoInterface.hh>
Interface for casm enum methods
Notes:
- See the interfaces implemented in
casm/app/enum/methods for examples
Definition at line 17 of file InfoInterface.hh.
|
| virtual std::string | desc () const =0 |
| |
| virtual std::string | name () const =0 |
| | Enumeration method name (i.e. "prim", "supercell", "dof_space", etc.) More...
|
| |
| virtual void | run (jsonParser const &json_options, PrimClex const *primclex=nullptr) const =0 |
| |
| std::unique_ptr< Cloneable > | clone () const |
| |
| std::unique_ptr< Cloneable > | move () |
| |
|
| virtual Cloneable * | _clone () const =0 |
| |
| virtual Cloneable * | _move ()=0 |
| |
◆ _clone()
| virtual Cloneable* notstd::Cloneable::_clone |
( |
| ) |
const |
|
privatepure virtualinherited |
◆ _move()
| virtual Cloneable* notstd::Cloneable::_move |
( |
| ) |
|
|
privatepure virtualinherited |
◆ clone()
| std::unique_ptr<Cloneable> notstd::Cloneable::clone |
( |
| ) |
const |
|
inlineinherited |
◆ desc()
| virtual std::string CASM::InfoInterfaceBase::desc |
( |
| ) |
const |
|
pure virtual |
◆ move()
| std::unique_ptr<Cloneable> notstd::Cloneable::move |
( |
| ) |
|
|
inlineinherited |
◆ name()
| virtual std::string CASM::InfoInterfaceBase::name |
( |
| ) |
const |
|
pure virtual |
◆ run()
| virtual void CASM::InfoInterfaceBase::run |
( |
jsonParser const & |
json_options, |
|
|
PrimClex const * |
primclex = nullptr |
|
) |
| const |
|
pure virtual |
Enumeration method implementation
- Parameters
-
| json_options | JSON input, as by –input or –settings CLI options |
| primclex | Optional PrimClex pointer gives access to project resources. Will only by provided if provided to API, for use of current working directory project, must be constructed by the method. |
It is up to the individual method to determine how to use json_options and document itself via desc(). For most methods, the input should include a list of "properties" to query via DataFormatters, with default empty array indicating to print all properties in a DataFormatterDictionary. For example:
{
"prim": <prim.json format>,
"something_else": ...,
"properties": ["name", "name", "name(args, ...)"]
}
The output is primarily intended to be JSON directly to the CASM::log(), but it is up to the each method to document itself.
Implement a new casm info method by following the example of PrimInfoInterface.
Implemented in CASM::SupercellInfoInterface, CASM::PrimInfoInterface, and CASM::NeighborListInfoInterface.
The documentation for this class was generated from the following file:
- /Users/bpuchala/Work/codes/CASMcode_v0.2.X_reference/include/casm/app/info/InfoInterface.hh