CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <InputEnumerator.hh>
Base class for implementing specialized input enumerators.
InputEnumerator allow single pass iteration over some objects of ValueType. The specialized class should document any guaranteed properties of the enumerated objects. For instance, some enumerators may guarantee that objects will be unique, others may not. Some may guarantee objects will be primitive or in canonical form, others may not. Etc.
Derived classes (ex. MyDerivedEnumClass) must implement:
Derived classes should contain ENUMERATOR_MEMBERS(MyDerivedClass) in the class definition to automatically implement:
In CASM namespace near the derived class definition, include:
Definition at line 197 of file InputEnumerator.hh.
Public Types | |
typedef InputEnumIterator< ValueType, IsConst > | iterator |
typedef ValueType | value_type |
typedef CASM_TMP::ConstSwitch< IsConst, ValueType > & | reference |
typedef long | step_type |
Public Member Functions | |
InputEnumeratorBase () | |
virtual | ~InputEnumeratorBase () |
iterator | begin () |
iterator | end () |
reference | current () const |
Access the current ObjectType by reference. More... | |
virtual std::string | name () const =0 |
Derived enumerators must implement name, via ENUM_MEMBERS. More... | |
virtual std::string | name () const =0 |
Derived enumerators must implement name, via ENUM_MEMBERS. More... | |
virtual jsonParser | source (step_type step) const |
virtual jsonParser | source (step_type step) const |
step_type | step () const |
Increments with each enumerated object. More... | |
step_type | step () const |
Increments with each enumerated object. More... | |
bool | valid () const |
Returns false if enumeration is complete. More... | |
bool | valid () const |
Returns false if enumeration is complete. More... | |
Protected Member Functions | |
void | _initialize (CASM_TMP::ConstSwitch< IsConst, value_type > *_initial) |
void | _initialize () |
void | _set_current_ptr (CASM_TMP::ConstSwitch< IsConst, value_type > *_new) |
Change the pointer. More... | |
void | _decrement_step () |
Decrement current step value. More... | |
void | _increment_step () |
Increment current step value. More... | |
void | _invalidate () |
Call if enumeration complete. More... | |
void | _set_step (step_type val) |
Set current step value. More... | |
void | _set_step (step_type val) |
Set current step value. More... | |
void | _validate () |
Used if random access enumerator step is moved into valid range. More... | |
Private Member Functions | |
virtual void | increment ()=0 |
Private Attributes | |
friend | InputEnumIteratorBase< ValueType, IsConst > |
CASM_TMP::ConstSwitch< IsConst, value_type > * | m_current_ptr |
bool | m_valid |
step_type | m_step |
typedef InputEnumIterator<ValueType, IsConst> CASM::InputEnumeratorBase< ValueType, IsConst >::iterator |
Definition at line 204 of file InputEnumerator.hh.
|
inherited |
Definition at line 174 of file Enumerator.hh.
|
inherited |
Definition at line 175 of file Enumerator.hh.
|
inherited |
Definition at line 173 of file Enumerator.hh.
|
inline |
Definition at line 206 of file InputEnumerator.hh.
|
inlinevirtual |
Definition at line 208 of file InputEnumerator.hh.
|
inlineprotectedinherited |
Decrement current step value.
Definition at line 202 of file Enumerator.hh.
|
inlineprotectedinherited |
Increment current step value.
Definition at line 203 of file Enumerator.hh.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Initialize
Definition at line 197 of file Enumerator.hh.
|
inlineprotectedinherited |
Call if enumeration complete.
Definition at line 204 of file Enumerator.hh.
|
inlineprotectedinherited |
Change the pointer.
Definition at line 215 of file Enumerator.hh.
|
inlineprotectedinherited |
Set current step value.
Definition at line 150 of file Enumerator.hh.
|
inlineprotectedinherited |
Set current step value.
Definition at line 205 of file Enumerator.hh.
|
inlineprotectedinherited |
Used if random access enumerator step is moved into valid range.
Definition at line 162 of file Enumerator.hh.
|
inline |
Definition at line 216 of file InputEnumerator.hh.
|
inlineinherited |
Access the current ObjectType by reference.
Definition at line 211 of file Enumerator.hh.
|
inline |
Definition at line 220 of file InputEnumerator.hh.
|
privatepure virtual |
Implemented in CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >, CASM::EnumEquivalents< xtal::Lattice, std::vector< CASM::SymOp >::const_iterator, CASM::SymOp, SymRepIndexCompare >, CASM::EnumEquivalents< Configuration, PermuteIterator >, CASM::EnumEquivalents< Supercell, std::vector< SymOp >::const_iterator, SymOp, SymRepIndexCompare >, CASM::RandomAccessEnumeratorBase< ValueType, IsConst >, CASM::SuperConfigEnum, CASM::ScelEnumByProps, CASM::ConfigEnumStrain, CASM::ConfigEnumSiteDoFs, CASM::ConfigEnumRandomOccupations, CASM::ConfigEnumRandomLocal, and CASM::ConfigEnumAllOccupations.
|
pure virtualinherited |
Derived enumerators must implement name, via ENUM_MEMBERS.
Implemented in CASM::LatticeEnumEquivalents, CASM::SuperConfigEnum, CASM::ScelEnumEquivalents, CASM::ScelEnumByProps, CASM::ConfigEnumStrain, CASM::ConfigEnumSiteDoFs, CASM::ConfigEnumRandomOccupations, CASM::ConfigEnumRandomLocal, CASM::ConfigEnumByPermutation, and CASM::ConfigEnumAllOccupations.
|
inherited |
Derived enumerators must implement name, via ENUM_MEMBERS.
|
inlinevirtualinherited |
Default Object source just uses step#
Returns:
Definition at line 129 of file Enumerator.hh.
|
inlineinherited |
|
inlineinherited |
Increments with each enumerated object.
Definition at line 115 of file Enumerator.hh.
|
inlineinherited |
Increments with each enumerated object.
Definition at line 186 of file Enumerator.hh.
|
inlineinherited |
Returns false if enumeration is complete.
Definition at line 118 of file Enumerator.hh.
|
inlineinherited |
Returns false if enumeration is complete.
Definition at line 187 of file Enumerator.hh.
|
private |
Definition at line 198 of file InputEnumerator.hh.
|
privateinherited |
Definition at line 220 of file Enumerator.hh.
|
privateinherited |
Definition at line 167 of file Enumerator.hh.
|
privateinherited |
Definition at line 165 of file Enumerator.hh.