CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <DatumFormatterAdapter.hh>
Adapt DatumFormatter to reuse with different types
Definition at line 18 of file DatumFormatterAdapter.hh.
Public Types | |
using | DataObject = ExternalType |
using | difference_type = typename BaseDatumFormatter< ExternalType >::difference_type |
using | DictType = typename BaseDatumFormatter< ExternalType >::DictType |
Public Member Functions | |
DatumFormatterAdapter (const std::string &_name, const std::string &_desc, adapter::Adapter< InternalType, ExternalType > _adapt, BaseDatumFormatter< InternalType > const &_base_formatter) | |
DatumFormatterAdapter (adapter::Adapter< InternalType, ExternalType > _adapt, BaseDatumFormatter< InternalType > const &_base_formatter) | |
virtual | ~DatumFormatterAdapter () |
Allow polymorphic deletion. More... | |
DatumFormatterClass | type () const override |
const DictType & | home () const |
const Access the dictionary containing this formatter, set during DictType::lookup More... | |
void | set_home (const DictType &home) const |
Set the dictionary containing this formatter, set during DictType::lookup. More... | |
std::unique_ptr< DatumFormatterAdapter< ExternalType, InternalType > > | clone () const |
bool | init (ExternalType const &_template_obj) const override |
Perform all initialization steps using _template_obj. Returns true if initialization is successful and false if _template_obj has insufficient data to complete initialization. More... | |
bool | validate (ExternalType const &_data_obj) const override |
Returns true if _data_obj has valid values for requested data. More... | |
std::vector< std::string > | col_header (ExternalType const &_template_obj) const override |
Returns a header string for each scalar produced by the formatter parsing the entries in the col_header should reproduce the exact query described by the formatter. Ex: "clex(formation_energy)" or "comp(a)", "comp(c)". More... | |
std::string | long_header (ExternalType const &_template_obj) const override |
Returns a long expression for each scalar produced by the formatter parsing the long_header should reproduce the exact query described by the formatter Ex: "clex(formation_energy)" or "comp(a) comp(c)". More... | |
std::string | short_header (ExternalType const &_template_obj) const override |
Returns a short expression for the formatter parsing the short_header should allow the formatter to be recreated (but the short header does not specify a subset of the elements) Ex: "clex(formation_energy)" or "comp". More... | |
Index | num_passes (ExternalType const &_data_obj) const override |
void | print (ExternalType const &_data_obj, std::ostream &_stream, Index pass_index=0) const override |
void | inject (ExternalType const &_data_obj, DataStream &_stream, Index pass_index=0) const override |
jsonParser & | to_json (ExternalType const &_data_obj, jsonParser &json) const override |
bool | parse_args (const std::string &args) override |
const std::string & | name () const |
Returns a name for the formatter, which becomes the tag used for parsing. More... | |
const std::string & | description () const |
Returns a short description of the formatter and its allowed arguments (if any). This description is used to automatically generate help screens. More... | |
void | set_home (const DictType &home) const |
Set the dictionary containing this formatter, set during DictType::lookup. More... | |
Protected Types | |
typedef multivector< Index >::X< 2 > | IndexContainer |
Protected Member Functions | |
void | _parse_index_expression (const std::string &_expr) |
void | _add_rule (const std::vector< Index > &new_rule) const |
const IndexContainer & | _index_rules () const |
Private Member Functions | |
BaseDatumFormatter< ExternalType > * | _clone () const override |
Make an exact copy of the formatter (including any initialized members) More... | |
Private Attributes | |
adapter::Adapter< InternalType, ExternalType > | m_adapt |
notstd::cloneable_ptr< BaseDatumFormatter< InternalType > > | m_base_ptr |
std::string | m_name |
std::string | m_description |
IndexContainer | m_index_rules |
const DictType * | m_home |
using CASM::DatumFormatterAdapter< ExternalType, InternalType >::DataObject = ExternalType |
Definition at line 20 of file DatumFormatterAdapter.hh.
using CASM::DatumFormatterAdapter< ExternalType, InternalType >::DictType = typename BaseDatumFormatter<ExternalType>::DictType |
Definition at line 23 of file DatumFormatterAdapter.hh.
using CASM::DatumFormatterAdapter< ExternalType, InternalType >::difference_type = typename BaseDatumFormatter<ExternalType>::difference_type |
Definition at line 21 of file DatumFormatterAdapter.hh.
|
protectedinherited |
Definition at line 459 of file DataFormatter.hh.
|
inline |
Construct with apapter function and base formatter. Use different name and description than base formatter.
Definition at line 27 of file DatumFormatterAdapter.hh.
|
inline |
Construct with apapter function and base formatter. Use same name and description as base formatter.
Definition at line 36 of file DatumFormatterAdapter.hh.
|
inlinevirtual |
Allow polymorphic deletion.
Definition at line 44 of file DatumFormatterAdapter.hh.
|
inlineprotectedinherited |
Definition at line 472 of file DataFormatter.hh.
|
inlineoverrideprivatevirtual |
Make an exact copy of the formatter (including any initialized members)
Implements CASM::BaseDatumFormatter< ExternalType >.
Definition at line 113 of file DatumFormatterAdapter.hh.
|
inlineprotectedinherited |
Definition at line 476 of file DataFormatter.hh.
|
protectedinherited |
Derived DatumFormatters have some optional functionality for parsing index expressions in order to make it easy to handle ranges such as:
in which case, DerivedDatumFormatter::parse_args() is called with the string "3,4:8" by dispatching that string to BaseDatumFormatter::_parse_index_expression(), m_index_rules will be populated with {{3,4},{3,5},{3,6},{3,7},{3,8}}
Definition at line 470 of file DataFormatter_impl.hh.
|
inline |
Definition at line 56 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Returns a header string for each scalar produced by the formatter parsing the entries in the col_header should reproduce the exact query described by the formatter. Ex: "clex(formation_energy)" or "comp(a)", "comp(c)".
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 70 of file DatumFormatterAdapter.hh.
|
inlineinherited |
Returns a short description of the formatter and its allowed arguments (if any). This description is used to automatically generate help screens.
Definition at line 352 of file DataFormatter.hh.
|
inline |
const Access the dictionary containing this formatter, set during DictType::lookup
Definition at line 50 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Perform all initialization steps using _template_obj. Returns true if initialization is successful and false if _template_obj has insufficient data to complete initialization.
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 62 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Stream selected data from _data_obj to _stream, while specifying which output pass is requested If implementation does not depend on pass_index, it may safely be ignored
Implements CASM::BaseDatumFormatter< ExternalType >.
Definition at line 95 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Returns a long expression for each scalar produced by the formatter parsing the long_header should reproduce the exact query described by the formatter Ex: "clex(formation_energy)" or "comp(a) comp(c)".
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 75 of file DatumFormatterAdapter.hh.
|
inlineinherited |
Returns a name for the formatter, which becomes the tag used for parsing.
Definition at line 347 of file DataFormatter.hh.
|
inlineoverridevirtual |
If data must be printed on multiple rows, returns number of rows needed to output all data from _data_obj DataFormatter class will subsequently pass over _data_obj multiple times to complete printing (if necessary)
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 83 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
If DatumFormatter accepts arguments, parse them here. Arguments are assumed to be passed from the command line via: formattername(argument1,argument2,...)
from which DerivedDatumFormatter::parse_args() receives the string "argument1,argument2,..." Returns true if parse is successful, false if not (e.g., takes no arguments, already initialized, malformed input, etc).
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 105 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Print formatted data from _data_obj to _stream, while specifying which output pass is requested If implementation does not depend on pass_index, it may safely be ignored
Implements CASM::BaseDatumFormatter< ExternalType >.
Definition at line 90 of file DatumFormatterAdapter.hh.
|
inlineinherited |
Set the dictionary containing this formatter, set during DictType::lookup.
Definition at line 364 of file DataFormatter.hh.
|
inline |
Set the dictionary containing this formatter, set during DictType::lookup.
Definition at line 54 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Returns a short expression for the formatter parsing the short_header should allow the formatter to be recreated (but the short header does not specify a subset of the elements) Ex: "clex(formation_energy)" or "comp".
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 79 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Assumes that 'json' object is simply assigned, and it is the job of DataFormatter (or some other managing entity) to pass the correct 'json' object. Ex: DerivedDatumFormatter my_formatter; initialize(my_formatter); // does some set of initialization steps jsonParser my_big_data_object; my_formatter.to_json(my_data_object, my_big_data_object["place_to_write"]["my_formatter_data"]);
Implements CASM::BaseDatumFormatter< ExternalType >.
Definition at line 100 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 46 of file DatumFormatterAdapter.hh.
|
inlineoverridevirtual |
Returns true if _data_obj has valid values for requested data.
Default implementation always returns true
Reimplemented from CASM::BaseDatumFormatter< ExternalType >.
Definition at line 66 of file DatumFormatterAdapter.hh.
|
private |
Definition at line 117 of file DatumFormatterAdapter.hh.
|
private |
Definition at line 118 of file DatumFormatterAdapter.hh.
|
privateinherited |
Definition at line 486 of file DataFormatter.hh.
|
mutableprivateinherited |
Definition at line 488 of file DataFormatter.hh.
|
mutableprivateinherited |
Definition at line 487 of file DataFormatter.hh.
|
privateinherited |
{ return notstd::make_unique<DerivedDatumFormatter>(*this);}
Definition at line 485 of file DataFormatter.hh.