CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::ValEnumerator< ValueType, IsConst > Class Template Referenceabstract

#include <Enumerator.hh>

+ Inheritance diagram for CASM::ValEnumerator< ValueType, IsConst >:

Detailed Description

template<typename ValueType, bool IsConst = true>
class CASM::ValEnumerator< ValueType, IsConst >

Definition at line 171 of file Enumerator.hh.

Public Types

typedef ValueType value_type
 
typedef CASM_TMP::ConstSwitch< IsConst, ValueType > & reference
 
typedef long step_type
 

Public Member Functions

 ValEnumerator ()
 
virtual ~ValEnumerator ()
 
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 jsonParser source (step_type step) const
 
step_type step () const
 Increments with each enumerated object. More...
 
bool valid () const
 Returns false if enumeration is complete. 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 (CASM_TMP::ConstSwitch< IsConst, value_type > *_initial)
 
void _set_current_ptr (CASM_TMP::ConstSwitch< IsConst, value_type > *_new)
 Change the pointer. More...
 
void _initialize ()
 
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 Attributes

CASM_TMP::ConstSwitch< IsConst, value_type > * m_current_ptr
 
bool m_valid
 
step_type m_step
 

Member Typedef Documentation

◆ reference

template<typename ValueType , bool IsConst = true>
typedef CASM_TMP::ConstSwitch<IsConst, ValueType>& CASM::ValEnumerator< ValueType, IsConst >::reference

Definition at line 174 of file Enumerator.hh.

◆ step_type

template<typename ValueType , bool IsConst = true>
typedef long CASM::EnumeratorBase::step_type

Definition at line 107 of file Enumerator.hh.

◆ value_type

template<typename ValueType , bool IsConst = true>
typedef ValueType CASM::ValEnumerator< ValueType, IsConst >::value_type

Definition at line 173 of file Enumerator.hh.

Constructor & Destructor Documentation

◆ ValEnumerator()

template<typename ValueType , bool IsConst = true>
CASM::ValEnumerator< ValueType, IsConst >::ValEnumerator ( )
inline

Definition at line 177 of file Enumerator.hh.

◆ ~ValEnumerator()

template<typename ValueType , bool IsConst = true>
virtual CASM::ValEnumerator< ValueType, IsConst >::~ValEnumerator ( )
inlinevirtual

Definition at line 179 of file Enumerator.hh.

Member Function Documentation

◆ _decrement_step()

template<typename ValueType , bool IsConst = true>
void CASM::EnumeratorBase::_decrement_step
inlineprotected

Decrement current step value.

Definition at line 156 of file Enumerator.hh.

◆ _increment_step()

template<typename ValueType , bool IsConst = true>
void CASM::EnumeratorBase::_increment_step
inlineprotected

Increment current step value.

Definition at line 153 of file Enumerator.hh.

◆ _initialize() [1/2]

template<typename ValueType , bool IsConst = true>
void CASM::EnumeratorBase::_initialize
inlineprotected

Initialize

  • Sets step to 0
  • Sets valid to true

Definition at line 144 of file Enumerator.hh.

◆ _initialize() [2/2]

template<typename ValueType , bool IsConst = true>
void CASM::ValEnumerator< ValueType, IsConst >::_initialize ( CASM_TMP::ConstSwitch< IsConst, value_type > *  _initial)
inlineprotected

Initialize

  • Sets current to point at _initial
  • Sets step to 0
  • Sets valid to true

Definition at line 197 of file Enumerator.hh.

◆ _invalidate()

template<typename ValueType , bool IsConst = true>
void CASM::EnumeratorBase::_invalidate
inlineprotected

Call if enumeration complete.

Definition at line 159 of file Enumerator.hh.

◆ _set_current_ptr()

template<typename ValueType , bool IsConst = true>
void CASM::ValEnumerator< ValueType, IsConst >::_set_current_ptr ( CASM_TMP::ConstSwitch< IsConst, value_type > *  _new)
inlineprotected

Change the pointer.

Definition at line 215 of file Enumerator.hh.

◆ _set_step() [1/2]

void CASM::EnumeratorBase::_set_step ( step_type  val)
inlineprotectedinherited

Set current step value.

Definition at line 150 of file Enumerator.hh.

◆ _set_step() [2/2]

template<typename ValueType , bool IsConst = true>
void CASM::EnumeratorBase::_set_step
inlineprotected

Set current step value.

Definition at line 150 of file Enumerator.hh.

◆ _validate()

void CASM::EnumeratorBase::_validate ( )
inlineprotectedinherited

Used if random access enumerator step is moved into valid range.

Definition at line 162 of file Enumerator.hh.

◆ current()

template<typename ValueType , bool IsConst = true>
reference CASM::ValEnumerator< ValueType, IsConst >::current ( ) const
inline

Access the current ObjectType by reference.

Definition at line 211 of file Enumerator.hh.

◆ name() [1/2]

virtual std::string CASM::EnumeratorBase::name ( ) const
pure virtualinherited

◆ name() [2/2]

template<typename ValueType , bool IsConst = true>
virtual std::string CASM::EnumeratorBase::name

Derived enumerators must implement name, via ENUM_MEMBERS.

◆ source() [1/2]

virtual jsonParser CASM::EnumeratorBase::source ( step_type  step) const
inlinevirtualinherited

Default Object source just uses step#

Returns:

{
"enumerated_by": "<enumerator_type>",
"step": <step #>
}
step_type step() const
Increments with each enumerated object.
Definition: Enumerator.hh:115

Definition at line 129 of file Enumerator.hh.

◆ source() [2/2]

template<typename ValueType , bool IsConst = true>
virtual jsonParser CASM::EnumeratorBase::source
inline

Default Object source just uses step#

Returns:

{
"enumerated_by": "<enumerator_type>",
"step": <step #>
}

Definition at line 129 of file Enumerator.hh.

◆ step() [1/2]

step_type CASM::EnumeratorBase::step ( ) const
inlineinherited

Increments with each enumerated object.

Definition at line 115 of file Enumerator.hh.

◆ step() [2/2]

template<typename ValueType , bool IsConst = true>
step_type CASM::EnumeratorBase::step
inline

Increments with each enumerated object.

Definition at line 115 of file Enumerator.hh.

◆ valid() [1/2]

bool CASM::EnumeratorBase::valid ( ) const
inlineinherited

Returns false if enumeration is complete.

Definition at line 118 of file Enumerator.hh.

◆ valid() [2/2]

template<typename ValueType , bool IsConst = true>
bool CASM::EnumeratorBase::valid
inline

Returns false if enumeration is complete.

Definition at line 118 of file Enumerator.hh.

Member Data Documentation

◆ m_current_ptr

template<typename ValueType , bool IsConst = true>
CASM_TMP::ConstSwitch<IsConst, value_type>* CASM::ValEnumerator< ValueType, IsConst >::m_current_ptr
private

Definition at line 220 of file Enumerator.hh.

◆ m_step

step_type CASM::EnumeratorBase::m_step
privateinherited

Definition at line 167 of file Enumerator.hh.

◆ m_valid

bool CASM::EnumeratorBase::m_valid
privateinherited

Definition at line 165 of file Enumerator.hh.


The documentation for this class was generated from the following file: