OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Expressions::ADeferred< T > Class Template Reference

Object attribute with a ``deferred'' array value. More...

#include <ADeferred.h>

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

Public Member Functions

 ADeferred ()
 Default constructor.
 ADeferred (PtrToArray< T > expr)
 Constructor.
 ADeferred (const std::vector< T > &val)
 Constructor.
 ADeferred (ArrayOfPtrs< T > expr)
 Constructor.
 ADeferred (const ADeferred< T > &)
virtual ~ADeferred ()
virtual ADeferred< T > * clone () const
 Make clone.
virtual std::vector< T > evaluate ()
 Evaluate.
virtual bool isExpression () const
 Get expression flag.
virtual void print (std::ostream &) const
 Print the attribute value.
void setComponent (int i, const PtrToScalar< T > expr)
 Set a component of the 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.
virtual void invalidate ()
 Force re-evaluation.

Protected Attributes

PtrToArray< T > itsLaw
 The generating law for the array expression.
ArrayOfPtrs< T > itsOverrides
 Overrides for single components.
std::vector< T > value
 The value of the attribute.

Private Member Functions

void operator= (const ADeferred< T > &)

Private Attributes

bool in_evaluation
int refCount

Detailed Description

template<class T>
class Expressions::ADeferred< T >

Object attribute with a ``deferred'' array value.

Definition at line 40 of file ADeferred.h.

Constructor & Destructor Documentation

◆ ADeferred() [1/5]

template<class T>
Expressions::ADeferred< T >::ADeferred ( )

Default constructor.

Definition at line 107 of file ADeferred.h.

References Expressions::AValue< T >::AValue(), in_evaluation, itsLaw, and itsOverrides.

Referenced by Expressions::AAutomatic< T >::AAutomatic(), Expressions::AAutomatic< T >::AAutomatic(), Expressions::AAutomatic< T >::AAutomatic(), ADeferred(), clone(), and operator=().

Here is the call graph for this function:

◆ ADeferred() [2/5]

template<class T>
Expressions::ADeferred< T >::ADeferred ( PtrToArray< T > expr)
explicit

Constructor.

Definition at line 137 of file ADeferred.h.

References Expressions::AValue< T >::AValue(), in_evaluation, itsLaw, and itsOverrides.

Here is the call graph for this function:

◆ ADeferred() [3/5]

template<class T>
Expressions::ADeferred< T >::ADeferred ( const std::vector< T > & val)
explicit

Constructor.

Definition at line 128 of file ADeferred.h.

References Expressions::AValue< T >::AValue(), in_evaluation, itsLaw, and itsOverrides.

Here is the call graph for this function:

◆ ADeferred() [4/5]

template<class T>
Expressions::ADeferred< T >::ADeferred ( ArrayOfPtrs< T > expr)
explicit

Constructor.

Definition at line 146 of file ADeferred.h.

References Expressions::AValue< T >::AValue(), in_evaluation, itsLaw, and itsOverrides.

Here is the call graph for this function:

◆ ADeferred() [5/5]

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

Definition at line 116 of file ADeferred.h.

References ADeferred(), Expressions::AValue< T >::AValue(), clone(), in_evaluation, itsLaw, and itsOverrides.

Here is the call graph for this function:

◆ ~ADeferred()

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

Definition at line 155 of file ADeferred.h.

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().

◆ clone()

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

Make clone.

Reimplemented from Expressions::AValue< T >.

Reimplemented in Expressions::AAutomatic< T >.

Definition at line 160 of file ADeferred.h.

References ADeferred().

Referenced by ADeferred().

Here is the call graph for this function:

◆ evaluate()

template<class T>
std::vector< T > Expressions::ADeferred< T >::evaluate ( )
virtual

Evaluate.

Reimplemented from Expressions::AValue< T >.

Reimplemented in Expressions::AAutomatic< T >.

Definition at line 166 of file ADeferred.h.

References AttributeBase::getImage(), in_evaluation, itsLaw, itsOverrides, Expressions::AValue< T >::value, OpalException::what(), and OpalException::where().

Referenced by Expressions::AAutomatic< T >::evaluate().

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:

◆ invalidate()

void Invalidator::invalidate ( )
virtualinherited

◆ isExpression()

template<class T>
bool Expressions::ADeferred< T >::isExpression ( ) const
virtual

Get expression flag.

Reimplemented from AttributeBase.

Definition at line 213 of file ADeferred.h.

References itsLaw, and itsOverrides.

◆ 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::ADeferred< T >::operator= ( const ADeferred< T > & )
private

References ADeferred().

Here is the call graph for this function:

◆ print()

template<class T>
void Expressions::ADeferred< T >::print ( std::ostream & os) const
virtual

Print the attribute value.

Reimplemented from Expressions::AValue< T >.

Definition at line 219 of file ADeferred.h.

References itsLaw, and itsOverrides.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References refCount.

◆ setComponent()

template<class T>
void Expressions::ADeferred< T >::setComponent ( int i,
const PtrToScalar< T > expr )

Set a component of the value.

Definition at line 242 of file ADeferred.h.

References itsOverrides.

Referenced by Attributes::BoolArray::parseComponent(), and Attributes::RealArray::parseComponent().

Member Data Documentation

◆ in_evaluation

template<class T>
bool Expressions::ADeferred< T >::in_evaluation
mutableprivate

Definition at line 99 of file ADeferred.h.

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

◆ itsLaw

template<class T>
PtrToArray<T> Expressions::ADeferred< T >::itsLaw
protected

The generating law for the array expression.

Definition at line 85 of file ADeferred.h.

Referenced by ADeferred(), ADeferred(), ADeferred(), ADeferred(), ADeferred(), evaluate(), isExpression(), and print().

◆ itsOverrides

template<class T>
ArrayOfPtrs<T> Expressions::ADeferred< T >::itsOverrides
protected

Overrides for single components.

Definition at line 91 of file ADeferred.h.

Referenced by ADeferred(), ADeferred(), ADeferred(), ADeferred(), ADeferred(), evaluate(), isExpression(), print(), and setComponent().

◆ 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>
std::vector<T> Expressions::AValue< T >::value
mutableprotectedinherited

The value of the attribute.

Definition at line 63 of file AValue.h.

Referenced by AValue(), AValue(), AValue(), clone(), Expressions::AAutomatic< T >::evaluate(), Expressions::ADeferred< T >::evaluate(), evaluate(), and print().


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