#include <ClexParamPack.hh>
BaseKey is base class from which all ClexParamKey implementation classes inherit. Hides implementation-specific access attributes through an abstract interface. A ClexParamKey object manages access for a particular type of data valuess. Additional specification of referenced data can be provided via linear or pair indices as necessary.
Definition at line 39 of file ClexParamPack.hh.
|
| BaseKey (std::string const &_name, bool _standalone, std::vector< Index > const &_offset={}, std::vector< Index > const &_stride={}) |
| Must be constructed with at least a name. More...
|
|
virtual | ~BaseKey () |
| Abstract class must define virtual destructor. More...
|
|
std::string const & | name () const |
| Name of this Key, should be descriptive of managed data. Ex.: "disp_var" of "magspin_site_basis". More...
|
|
template<typename... Args> |
void | set_identifiers (Args const &... args) |
| Specify supplemental identifiers, either via linear indices or pair indices. Internally, identifiers are always passed as linear indices. The number and specification of identifiers depends on derived ClexParamKey implementation. Linear identifiers should be passed as an integral value (Index, int, etc) pair index identifiers must be passed as std::pair<Index,Index> More...
|
|
std::unique_ptr< BaseKey > | clone () const |
| Clone the ClexParamKey. More...
|
|
bool | standalone () const |
| Returns true if key refers directly to managed data, false if it refers to values derived from managed data. More...
|
|
◆ BaseKey()
CASM::ClexParamPack_impl::BaseKey::BaseKey |
( |
std::string const & |
_name, |
|
|
bool |
_standalone, |
|
|
std::vector< Index > const & |
_offset = {} , |
|
|
std::vector< Index > const & |
_stride = {} |
|
) |
| |
|
inline |
Must be constructed with at least a name.
- Parameters
-
_name | { unique name that describes managed data } |
_standalone | { true if key refers directly to managed data, false if refers to value derived from managed data } |
_offset | { list of constant offsets for each supplemental linear identifier index } |
_stride | { list of strides to convert supplemental pair identifier indices to linear indices} |
Definition at line 48 of file ClexParamPack.hh.
◆ ~BaseKey()
virtual CASM::ClexParamPack_impl::BaseKey::~BaseKey |
( |
| ) |
|
|
inlinevirtual |
Abstract class must define virtual destructor.
Definition at line 58 of file ClexParamPack.hh.
◆ _clone()
virtual BaseKey* CASM::ClexParamPack_impl::BaseKey::_clone |
( |
| ) |
const |
|
protectedpure virtual |
◆ _l()
Index CASM::ClexParamPack_impl::BaseKey::_l |
( |
Index |
i | ) |
const |
|
inlineprotected |
◆ _set_identifiers() [1/3]
void CASM::ClexParamPack_impl::BaseKey::_set_identifiers |
( |
Index |
i, |
|
|
Index |
_ind |
|
) |
| |
|
inlineprotected |
◆ _set_identifiers() [2/3]
void CASM::ClexParamPack_impl::BaseKey::_set_identifiers |
( |
Index |
i, |
|
|
std::pair< Index, Index > |
_inds |
|
) |
| |
|
inlineprotected |
◆ _set_identifiers() [3/3]
template<typename T , typename... Args>
void CASM::ClexParamPack_impl::BaseKey::_set_identifiers |
( |
Index |
i, |
|
|
T const & |
_val, |
|
|
Args const &... |
args |
|
) |
| |
|
inlineprotected |
Recursive unrolling of variadic template to set all identifiers.
Definition at line 90 of file ClexParamPack.hh.
◆ clone()
std::unique_ptr<BaseKey> CASM::ClexParamPack_impl::BaseKey::clone |
( |
| ) |
const |
|
inline |
◆ name()
std::string const& CASM::ClexParamPack_impl::BaseKey::name |
( |
| ) |
const |
|
inline |
Name of this Key, should be descriptive of managed data. Ex.: "disp_var" of "magspin_site_basis".
Definition at line 62 of file ClexParamPack.hh.
◆ set_identifiers()
template<typename... Args>
void CASM::ClexParamPack_impl::BaseKey::set_identifiers |
( |
Args const &... |
args | ) |
|
|
inline |
Specify supplemental identifiers, either via linear indices or pair indices. Internally, identifiers are always passed as linear indices. The number and specification of identifiers depends on derived ClexParamKey implementation. Linear identifiers should be passed as an integral value (Index, int, etc) pair index identifiers must be passed as std::pair<Index,Index>
Definition at line 71 of file ClexParamPack.hh.
◆ standalone()
bool CASM::ClexParamPack_impl::BaseKey::standalone |
( |
| ) |
const |
|
inline |
Returns true if key refers directly to managed data, false if it refers to values derived from managed data.
Definition at line 82 of file ClexParamPack.hh.
◆ m_identifiers
std::vector<Index> CASM::ClexParamPack_impl::BaseKey::m_identifiers |
|
protected |
◆ m_name
std::string CASM::ClexParamPack_impl::BaseKey::m_name |
|
private |
◆ m_offset
std::vector<Index> CASM::ClexParamPack_impl::BaseKey::m_offset |
|
protected |
◆ m_standalone
bool CASM::ClexParamPack_impl::BaseKey::m_standalone |
|
private |
◆ m_stride
std::vector<Index> CASM::ClexParamPack_impl::BaseKey::m_stride |
|
protected |
The documentation for this class was generated from the following file:
- /Users/bpuchala/Work/codes/CASMcode_v0.2.X_reference/include/casm/clex/ClexParamPack.hh