CASM
AClustersApproachtoStatisticalMechanics
|
#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 11 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... | |
step_type | step () const |
Increments with each enumerated object. More... | |
bool | valid () const |
Returns false if enumeration is complete. More... | |
virtual jsonParser | source (step_type step) const |
virtual std::string | name () const =0 |
Derived enumerators must implement name, via ENUM_MEMBERS. More... | |
Protected Member Functions | |
void | _initialize (value_type *_initial) |
void | _initialize () |
void | _set_current_ptr (value_type *_new) |
Change the pointer. More... | |
value_type & | _current () |
Access the current ObjectType by reference. More... | |
void | _set_step (step_type val) |
Set current step value. More... | |
void | _increment_step () |
Increment current step value. More... | |
void | _decrement_step () |
Decrement current step value. More... | |
void | _invalidate () |
Call if enumeration complete. 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 > |
typedef InputEnumIterator<ValueType, IsConst> CASM::InputEnumeratorBase< ValueType, IsConst >::iterator |
Definition at line 231 of file InputEnumerator.hh.
|
inherited |
Definition at line 192 of file Enumerator.hh.
|
inherited |
Definition at line 103 of file Enumerator.hh.
|
inherited |
Definition at line 191 of file Enumerator.hh.
|
inline |
Definition at line 234 of file InputEnumerator.hh.
|
inlinevirtual |
Definition at line 236 of file InputEnumerator.hh.
|
inlineprotectedinherited |
Access the current ObjectType by reference.
Definition at line 244 of file Enumerator.hh.
|
inlineprotectedinherited |
Decrement current step value.
Definition at line 164 of file Enumerator.hh.
|
inlineprotectedinherited |
Increment current step value.
Definition at line 159 of file Enumerator.hh.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Initialize
Definition at line 216 of file Enumerator.hh.
|
inlineprotectedinherited |
Call if enumeration complete.
Definition at line 169 of file Enumerator.hh.
|
inlineprotectedinherited |
Change the pointer.
Definition at line 239 of file Enumerator.hh.
|
inlineprotectedinherited |
Set current step value.
Definition at line 154 of file Enumerator.hh.
|
inlineprotectedinherited |
Used if random access enumerator step is moved into valid range.
Definition at line 174 of file Enumerator.hh.
|
inline |
Definition at line 245 of file InputEnumerator.hh.
|
inlineinherited |
Access the current ObjectType by reference.
Definition at line 232 of file Enumerator.hh.
|
inline |
Definition at line 249 of file InputEnumerator.hh.
|
privatepure virtual |
Implemented in CASM::RandomAccessEnumeratorBase< ValueType, IsConst >, CASM::RandomAccessEnumeratorBase< Supercell, IsConst >, CASM::RandomAccessEnumeratorBase< Configuration >, CASM::ScelEnumT< IsConst >, CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >, CASM::EnumEquivalents< Lattice, Array< SymOp >::const_iterator, SymOp, SymRepIndexCompare >, CASM::EnumEquivalents< Supercell, Array< SymOp >::const_iterator, SymOp, SymRepIndexCompare >, CASM::EnumEquivalents< Configuration, PermuteIterator >, CASM::ScelEnumByPropsT< IsConst >, CASM::SuperConfigEnum, CASM::ConfigEnumRandomOccupations, CASM::ConfigEnumAllOccupations, CASM::TestEnum, and CASM::ConfigEnumStrain.
|
pure virtualinherited |
Derived enumerators must implement name, via ENUM_MEMBERS.
Implemented in CASM::ScelEnumT< IsConst >, CASM::ScelEnumByPropsT< IsConst >, CASM::ScelEnumByNameT< IsConst >, CASM::SuperConfigEnum, CASM::ConfigEnumRandomOccupations, CASM::ConfigEnumEquivalents, CASM::ConfigEnumAllOccupations, CASM::TestEnum, CASM::ConfigEnumStrain, CASM::ScelEnumEquivalents, CASM::ConfigEnumInterpolation, and CASM::LatticeEnumEquivalents.
|
inlinevirtualinherited |
|
inlineinherited |
Increments with each enumerated object.
Definition at line 113 of file Enumerator.hh.
|
inlineinherited |
Returns false if enumeration is complete.
Definition at line 118 of file Enumerator.hh.
|
private |
Definition at line 224 of file InputEnumerator.hh.