CASM
AClustersApproachtoStatisticalMechanics
|
#include <RandomAccessEnumerator.hh>
Base class for implementing specialized random access enumerators.
InputEnumerator allow random access 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 15 of file RandomAccessEnumerator.hh.
Public Types | |
typedef RandomAccessEnumIterator < ValueType, IsConst > | iterator |
typedef std::reverse_iterator < iterator > | reverse_iterator |
typedef step_type | size_type |
typedef ValueType | value_type |
typedef CASM_TMP::ConstSwitch < IsConst, ValueType > & | reference |
typedef long | step_type |
Public Member Functions | |
RandomAccessEnumeratorBase (size_type size=0) | |
~RandomAccessEnumeratorBase () | |
iterator | begin () |
iterator | end () |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
size_type | size () const |
Number of elements in enumerator. More... | |
reference | front () |
Reference to first element in enumerator. More... | |
reference | back () |
Reference to last element in enumerator. More... | |
reference | initial () |
Reference to first element in enumerator. More... | |
reference | final () |
Reference to last element in enumerator. More... | |
reference | operator[] (size_type n) |
Reference an element in enumerator. More... | |
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 | _set_size (size_type val) |
Set size value. More... | |
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 value_type * | at_step (step_type n)=0 |
void | goto_step (step_type n) |
void | increment () override |
Private Attributes | |
friend | RandomAccessEnumIteratorBase< ValueType, IsConst > |
size_type | m_size |
typedef RandomAccessEnumIterator<ValueType, IsConst> CASM::RandomAccessEnumeratorBase< ValueType, IsConst >::iterator |
Definition at line 287 of file RandomAccessEnumerator.hh.
|
inherited |
Definition at line 192 of file Enumerator.hh.
typedef std::reverse_iterator<iterator> CASM::RandomAccessEnumeratorBase< ValueType, IsConst >::reverse_iterator |
Definition at line 288 of file RandomAccessEnumerator.hh.
typedef step_type CASM::RandomAccessEnumeratorBase< ValueType, IsConst >::size_type |
Definition at line 289 of file RandomAccessEnumerator.hh.
|
inherited |
Definition at line 103 of file Enumerator.hh.
|
inherited |
Definition at line 191 of file Enumerator.hh.
|
inline |
Definition at line 292 of file RandomAccessEnumerator.hh.
|
inline |
Definition at line 296 of file RandomAccessEnumerator.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.
|
inlineprotected |
Set size value.
Definition at line 365 of file RandomAccessEnumerator.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.
|
privatepure virtual |
Must be implemented in derived enumerator
Implemented in CASM::ScelEnumByNameT< IsConst >, and CASM::ConfigEnumInterpolation.
|
inline |
Reference to last element in enumerator.
Definition at line 333 of file RandomAccessEnumerator.hh.
|
inline |
Definition at line 305 of file RandomAccessEnumerator.hh.
|
inlineinherited |
Access the current ObjectType by reference.
Definition at line 232 of file Enumerator.hh.
|
inline |
Definition at line 309 of file RandomAccessEnumerator.hh.
|
inline |
Reference to last element in enumerator.
Definition at line 344 of file RandomAccessEnumerator.hh.
|
inline |
Reference to first element in enumerator.
Definition at line 327 of file RandomAccessEnumerator.hh.
|
inlineprivate |
Sets step, current pointer via call to 'at_step', and enumerator validity
Definition at line 382 of file RandomAccessEnumerator.hh.
|
inlineoverrideprivatevirtual |
Pure virtual function inherited from InputEnumeratorBase, needed when incrementing from InputEnumeratorBase*
Implements CASM::InputEnumeratorBase< ValueType, IsConst >.
Definition at line 398 of file RandomAccessEnumerator.hh.
|
inline |
Reference to first element in enumerator.
Definition at line 339 of file RandomAccessEnumerator.hh.
|
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.
|
inline |
Reference an element in enumerator.
Definition at line 349 of file RandomAccessEnumerator.hh.
|
inline |
Definition at line 313 of file RandomAccessEnumerator.hh.
|
inline |
Definition at line 317 of file RandomAccessEnumerator.hh.
|
inline |
Number of elements in enumerator.
Definition at line 322 of file RandomAccessEnumerator.hh.
|
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 402 of file RandomAccessEnumerator.hh.
|
private |
Definition at line 280 of file RandomAccessEnumerator.hh.