OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
Expressions::SAutomatic< T > Class Template Reference

Object attribute with an ``automatic'' scalar value. More...

#include <SAutomatic.h>

Inheritance diagram for Expressions::SAutomatic< T >:
Collaboration diagram for Expressions::SAutomatic< T >:

Public Member Functions

 SAutomatic (PtrToScalar< T > expr)
 Constructor.
 SAutomatic (const SAutomatic< T > &)
virtual ~SAutomatic ()
virtual SAutomatic< T > * clone () const
 Make clone.
virtual T evaluate ()
 Evaluate.
virtual void invalidate ()
 Invalidate.
virtual bool isExpression () const
 Return expression flag.
virtual void print (std::ostream &) const
 Print the attribute value.
std::string getImage () const
 Convert to string.
int addReference () const
 Increment reference count.
int removeReference () const
 Decrement the reference count.
bool isShared () const
 Test for sharing.

Protected Attributes

PtrToScalar< Texpr_ptr
 Pointer to expression.
T value
 The value of the attribute.

Private Member Functions

 SAutomatic ()
void operator= (const SAutomatic< T > &)

Private Attributes

bool is_known
bool in_evaluation
int refCount

Detailed Description

template<class T>
class Expressions::SAutomatic< T >

Object attribute with an ``automatic'' scalar value.

Definition at line 38 of file SAutomatic.h.

Constructor & Destructor Documentation

◆ SAutomatic() [1/3]

template<class T>
Expressions::SAutomatic< T >::SAutomatic ( PtrToScalar< T > expr)
explicit

Constructor.

Definition at line 82 of file SAutomatic.h.

References OpalData::getInstance(), is_known, OpalData::registerExpression(), and Expressions::SDeferred< T >::SDeferred().

Referenced by clone(), operator=(), and SAutomatic().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SAutomatic() [2/3]

template<class T>
Expressions::SAutomatic< T >::SAutomatic ( const SAutomatic< T > & rhs)

Definition at line 75 of file SAutomatic.h.

References OpalData::getInstance(), is_known, OpalData::registerExpression(), SAutomatic(), and Expressions::SDeferred< T >::SDeferred().

Here is the call graph for this function:

◆ ~SAutomatic()

template<class T>
Expressions::SAutomatic< T >::~SAutomatic ( )
virtual

Definition at line 89 of file SAutomatic.h.

References OpalData::getInstance(), and OpalData::unregisterExpression().

Here is the call graph for this function:

◆ SAutomatic() [3/3]

template<class T>
Expressions::SAutomatic< T >::SAutomatic ( )
private

Member Function Documentation

◆ addReference()

int RCObject::addReference ( ) const
inlineinherited

Increment reference count.

Definition at line 83 of file RCObject.h.

References refCount.

Referenced by Pointer< Object >::operator=(), Pointer< Object >::operator=(), and Pointer< Object >::unique().

Here is the caller graph for this function:

◆ clone()

template<class T>
SAutomatic< T > * Expressions::SAutomatic< T >::clone ( ) const
virtual

Make clone.

Reimplemented from Expressions::SDeferred< T >.

Definition at line 96 of file SAutomatic.h.

References SAutomatic().

Here is the call graph for this function:

◆ evaluate()

template<class T>
T Expressions::SAutomatic< T >::evaluate ( )
virtual

Evaluate.

Reimplemented from Expressions::SDeferred< T >.

Definition at line 102 of file SAutomatic.h.

References Expressions::SDeferred< T >::evaluate(), is_known, and Expressions::SValue< T >::value.

Here is the call graph for this function:

◆ getImage()

std::string AttributeBase::getImage ( ) const
inherited

Convert to string.

Definition at line 34 of file AttributeBase.cpp.

References print().

Referenced by Expressions::ADeferred< T >::evaluate(), Expressions::SDeferred< T >::evaluate(), and Expressions::SRefAttr< T >::evaluate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ invalidate()

template<class T>
void Expressions::SAutomatic< T >::invalidate ( )
virtual

Invalidate.

Reimplemented from Invalidator.

Definition at line 113 of file SAutomatic.h.

References is_known.

◆ isExpression()

template<class T>
bool Expressions::SDeferred< T >::isExpression ( ) const
virtualinherited

Return expression flag.

Reimplemented from AttributeBase.

Definition at line 144 of file SDeferred.h.

◆ isShared()

bool RCObject::isShared ( ) const
inlineinherited

Test for sharing.

Definition at line 93 of file RCObject.h.

References refCount.

◆ operator=()

template<class T>
void Expressions::SAutomatic< T >::operator= ( const SAutomatic< T > & )
private

References SAutomatic().

Here is the call graph for this function:

◆ print()

template<class T>
void Expressions::SDeferred< T >::print ( std::ostream & stream) const
virtualinherited

Print the attribute value.

Reimplemented from Expressions::SValue< T >.

Definition at line 150 of file SDeferred.h.

References expr_ptr.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References refCount.

Member Data Documentation

◆ expr_ptr

template<class T>
PtrToScalar<T> Expressions::SDeferred< T >::expr_ptr
protectedinherited

Pointer to expression.

Definition at line 67 of file SDeferred.h.

Referenced by evaluate(), print(), SDeferred(), and SDeferred().

◆ in_evaluation

template<class T>
bool Expressions::SDeferred< T >::in_evaluation
mutableprivateinherited

Definition at line 76 of file SDeferred.h.

Referenced by evaluate(), SDeferred(), and SDeferred().

◆ is_known

template<class T>
bool Expressions::SAutomatic< T >::is_known
mutableprivate

Definition at line 67 of file SAutomatic.h.

Referenced by evaluate(), invalidate(), SAutomatic(), and SAutomatic().

◆ refCount

int RCObject::refCount
mutableprivateinherited

Definition at line 76 of file RCObject.h.

Referenced by addReference(), isShared(), RCObject(), RCObject(), and removeReference().

◆ value

template<class T>
T Expressions::SValue< T >::value
mutableprotectedinherited

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