OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
Action Class Referenceabstract

The base class for all OPAL actions. More...

#include <Action.h>

Inheritance diagram for Action:
Collaboration diagram for Action:

Public Member Functions

virtual ~Action ()
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed.
virtual const std::string getCategory () const
 Return the object category as a string.
virtual bool shouldTrace () const
 Trace flag.
virtual bool shouldUpdate () const
 Update flag.
virtual Objectclone (const std::string &name)=0
 Return a clone.
void copyAttributes (const Object &)
 Copy attributes from another object.
virtual void execute ()
 Execute the command.
virtual AttributefindAttribute (const std::string &name)
 Find an attribute by name.
virtual const AttributefindAttribute (const std::string &name) const
 Find an attribute by name.
virtual ObjectmakeTemplate (const std::string &, TokenStream &, Statement &)
 Macro handler function.
virtual ObjectmakeInstance (const std::string &name, Statement &, const Parser *)
 Macro handler function.
virtual void parse (Statement &)
 Parse the object.
virtual void parseShortcut (Statement &, bool eval=true)
 Parser for single-attribute commands.
virtual void print (std::ostream &) const
 Print the object.
virtual void printValue (std::ostream &) const
virtual void printHelp (std::ostream &) const
 Print help.
virtual void replace (Object *oldObject, Object *newObject)
 Replace references.
virtual void update ()
 Update this object.
bool isBuiltin () const
 True, if [b]this[/b] is a built-in object.
virtual bool isShared () const
 Shared flag.
virtual void setShared (bool)
 Set/reset shared flag.
void setDirty (bool)
 Set/reset the [b]modified[/b] flag.
bool isDirty () const
 True, if the [b]modified[/b] flag is set.
void setFlag (bool)
 Flag/unflag this object, e. g. to control output of objects for.
bool isFlagged () const
 True, if [b]this[/b] is flagged by setFlag(true).
const ObjectgetBaseObject () const
 Return the object's base type object.
const std::string & getOpalName () const
 Return object name.
ObjectgetParent () const
 Return parent pointer.
bool isTreeMember (const Object *subTree) const
 Test for tree membership.
void setOpalName (const std::string &name)
 Set object name.
void setParent (Object *)
 Set parent object.
void clear ()
 Clear the occurrence counter.
int increment ()
 Increment and return the occurrence counter.
int occurrenceCount ()
 Return the occurrence counter.
void registerReference (Invalidator *a)
 Register a reference to this object.
void unregisterReference (Invalidator *a)
 Unegister a reference to this object.
void registerOwnership (const AttributeHandler::OwnerType &itsClass) const
int addReference () const
 Increment reference count.
int removeReference () const
 Decrement the reference count.

Public Attributes

std::vector< AttributeitsAttr
 The object attributes.

Protected Member Functions

 Action (int size, const char *name, const char *help)
 Constructor for exemplars.
 Action (const std::string &name, Action *parent)
 Constructor for cloning.

Protected Attributes

bool builtin
 Built-in flag.
bool modified
 Dirty flag.
bool flagged
 Object flag.

Private Member Functions

 Action ()
 Action (const Action &)
void operator= (const Action &)

Private Attributes

ObjectitsParent
std::string itsName
std::string itsHelp
int occurrence
double timeStamp
std::set< Invalidator * > references
bool sharedFlag
int refCount

Detailed Description

The base class for all OPAL actions.

Definition at line 30 of file Action.h.

Constructor & Destructor Documentation

◆ ~Action()

Action::~Action ( )
virtual

Definition at line 25 of file Action.cpp.

◆ Action() [1/4]

Action::Action ( int size,
const char * name,
const char * help )
protected

Constructor for exemplars.

Definition at line 54 of file Action.cpp.

References Object::Object().

Referenced by Action(), Action(), Call::Call(), Call::Call(), DumpEMFields::DumpEMFields(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), DumpFields::DumpFields(), Echo::Echo(), Echo::Echo(), Help::Help(), Help::Help(), operator=(), Option::Option(), Option::Option(), PSystem::PSystem(), PSystem::PSystem(), Quit::Quit(), Quit::Quit(), Select::Select(), Select::Select(), Stop::Stop(), Stop::Stop(), System::System(), System::System(), Title::Title(), Title::Title(), TrackCmd::TrackCmd(), TrackCmd::TrackCmd(), TrackEnd::TrackEnd(), TrackEnd::TrackEnd(), TrackRun::TrackRun(), TrackRun::TrackRun(), Value::Value(), and Value::Value().

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

◆ Action() [2/4]

Action::Action ( const std::string & name,
Action * parent )
protected

Constructor for cloning.

Definition at line 49 of file Action.cpp.

References Action(), and Object::Object().

Here is the call graph for this function:

◆ Action() [3/4]

Action::Action ( )
private

◆ Action() [4/4]

Action::Action ( const Action & )
private

References Action().

Here is the call graph for this function:

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:

◆ canReplaceBy()

bool Action::canReplaceBy ( Object * object)
virtual

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 29 of file Action.cpp.

References Object::Object().

Here is the call graph for this function:

◆ clear()

void Object::clear ( )
inherited

Clear the occurrence counter.

Definition at line 339 of file Object.cpp.

References occurrence.

◆ clone()

virtual Object * Object::clone ( const std::string & name)
pure virtualinherited

Return a clone.

Implemented in Beam, BoolConstant, BoundaryGeometry, Call, Distribution, DumpEMFields, DumpFields, Echo, FieldSolverCmd, Help, Line, LineTemplate, Macro, OpalCavity, OpalDrift, OpalFilter, OpalMarker, OpalMonitor, OpalMultipole, OpalMultipoleT, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalOffset::OpalLocalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalProbe, OpalRingDefinition, OpalSolenoid, OpalSource, OpalTravelingWave, OpalVacuum, OpalVerticalFFAMagnet, Option, PSystem, Quit, RealConstant, RealVariable, RealVector, Select, Sequence, SequenceTemplate, Stop, StringConstant, System, Title, TrackCmd, TrackEnd, TrackRun, and Value.

References Object().

Referenced by OpalParser::parseAction(), OpalParser::parseAssign(), and OpalParser::parseDefine().

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

◆ copyAttributes()

void Object::copyAttributes ( const Object & source)
inherited

Copy attributes from another object.

Definition at line 54 of file Object.cpp.

References itsAttr, and Object().

Referenced by LineTemplate::makeInstance(), and SequenceTemplate::makeInstance().

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

◆ execute()

void Object::execute ( )
virtualinherited

◆ findAttribute() [1/2]

Attribute * Object::findAttribute ( const std::string & name)
virtualinherited

Find an attribute by name.

Definition at line 64 of file Object.cpp.

References itsAttr.

Referenced by OpalElement::getParticleMatterInteraction(), OpalElement::getTypeName(), OpalElement::getWakeF(), Line::parse(), parse(), OpalElement::parse(), OpalParser::parseAssign(), SequenceParser::parsePosition(), and parseShortcut().

Here is the caller graph for this function:

◆ findAttribute() [2/2]

const Attribute * Object::findAttribute ( const std::string & name) const
virtualinherited

Find an attribute by name.

Definition at line 72 of file Object.cpp.

References itsAttr.

◆ getBaseObject()

const Object * Object::getBaseObject ( ) const
inherited

Return the object's base type object.

Definition at line 301 of file Object.cpp.

References itsParent, and Object().

Here is the call graph for this function:

◆ getCategory()

const std::string Action::getCategory ( ) const
virtual

Return the object category as a string.

Implements Object.

Definition at line 34 of file Action.cpp.

◆ getOpalName()

◆ getParent()

Object * Object::getParent ( ) const
inherited

Return parent pointer.

Definition at line 313 of file Object.cpp.

References itsParent, and Object().

Referenced by OpalData::erase(), print(), OpalElement::print(), registerOwnership(), and OpalElement::registerOwnership().

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

◆ increment()

int Object::increment ( )
inherited

Increment and return the occurrence counter.

Definition at line 344 of file Object.cpp.

References occurrence.

Referenced by Line::parse(), and Sequence::storeLine().

Here is the caller graph for this function:

◆ isBuiltin()

bool Object::isBuiltin ( ) const
inherited

True, if [b]this[/b] is a built-in object.

Definition at line 266 of file Object.cpp.

References builtin.

Referenced by OpalData::define(), and OpalData::getVariableNames().

Here is the caller graph for this function:

◆ isDirty()

bool Object::isDirty ( ) const
inherited

True, if the [b]modified[/b] flag is set.

Definition at line 287 of file Object.cpp.

References modified.

◆ isFlagged()

bool Object::isFlagged ( ) const
inherited

True, if [b]this[/b] is flagged by setFlag(true).

Definition at line 297 of file Object.cpp.

References flagged.

◆ isShared()

bool Object::isShared ( ) const
virtualinherited

Shared flag.

Definition at line 271 of file Object.cpp.

References sharedFlag.

Referenced by Sequence::print().

Here is the caller graph for this function:

◆ isTreeMember()

bool Object::isTreeMember ( const Object * subTree) const
inherited

Test for tree membership.

Definition at line 318 of file Object.cpp.

References Object().

Referenced by Selector::handleElement(), and OpalParser::parseAssign().

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

◆ makeInstance()

Object * Object::makeInstance ( const std::string & name,
Statement & ,
const Parser *  )
virtualinherited

Macro handler function.

Reimplemented in LineTemplate, MacroCmd, and SequenceTemplate.

Definition at line 89 of file Object.cpp.

References getOpalName(), and Object().

Referenced by OpalParser::parseDefine(), and OpalParser::parseMacro().

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

◆ makeTemplate()

Object * Object::makeTemplate ( const std::string & name,
TokenStream & ,
Statement &  )
virtualinherited

Macro handler function.

Reimplemented in Line, LineTemplate, MacroCmd, Sequence, and SequenceTemplate.

Definition at line 82 of file Object.cpp.

References Object().

Referenced by OpalParser::parseMacro().

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

◆ occurrenceCount()

int Object::occurrenceCount ( )
inherited

Return the occurrence counter.

Definition at line 349 of file Object.cpp.

References occurrence.

◆ operator=()

void Action::operator= ( const Action & )
private

References Action().

Here is the call graph for this function:

◆ parse()

void Object::parse ( Statement & stat)
virtualinherited

Parse the object.

Reimplemented in Call, Echo, Help, Line, OpalElement, PSystem, Sequence, System, Title, and Value.

Definition at line 95 of file Object.cpp.

References Statement::delimiter(), findAttribute(), getOpalName(), Expressions::parseDelimiter(), Expressions::parseRealConst(), and Expressions::parseString().

Referenced by Sequence::parse(), OpalParser::parseAction(), OpalParser::parseDefine(), and SequenceTemplate::parseTemplate().

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

◆ parseShortcut()

void Object::parseShortcut ( Statement & stat,
bool eval = true )
virtualinherited

Parser for single-attribute commands.

Definition at line 127 of file Object.cpp.

References Statement::delimiter(), findAttribute(), getOpalName(), Statement::mark(), and Statement::word().

Referenced by Call::parse(), Echo::parse(), Help::parse(), PSystem::parse(), System::parse(), Title::parse(), and Value::parse().

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

◆ print()

void Object::print ( std::ostream & msg) const
virtualinherited

Print the object.

Reimplemented in Beam, BoolConstant, DumpEMFields, DumpFields, Line, OpalElement, OpalFilter, OpalMarker, OpalMultipole, OpalMultipoleT, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalOffset::OpalLocalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalRingDefinition, RealConstant, RealVariable, RealVector, Sequence, and StringConstant.

Definition at line 159 of file Object.cpp.

References getOpalName(), getParent(), itsAttr, and Object().

Referenced by printValue().

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

◆ printHelp()

void Object::printHelp ( std::ostream & ) const
virtualinherited

Print help.

Definition at line 199 of file Object.cpp.

References gmsg, itsAttr, and itsHelp.

Referenced by Help::execute(), and main().

Here is the caller graph for this function:

◆ printValue()

void Object::printValue ( std::ostream & os) const
inlinevirtualinherited

Reimplemented in BoolConstant, RealConstant, RealVariable, RealVector, and StringConstant.

Definition at line 280 of file Object.h.

References print().

Here is the call graph for this function:

◆ registerOwnership()

void Object::registerOwnership ( const AttributeHandler::OwnerType & itsClass) const
inherited

Definition at line 189 of file Object.cpp.

References AttributeHandler::addAttributeOwner(), end(), getOpalName(), getParent(), and itsAttr.

Referenced by Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry::BoundaryGeometry(), Call::Call(), Distribution::Distribution(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), Echo::Echo(), Help::Help(), Line::Line(), OpalFilter::OpalFilter(), Option::Option(), PSystem::PSystem(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVector::RealVector(), Select::Select(), Sequence::Sequence(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), and Value::Value().

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

◆ registerReference()

void Object::registerReference ( Invalidator * a)
inherited

Register a reference to this object.

Definition at line 180 of file Object.cpp.

References references.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References refCount.

◆ replace()

void Object::replace ( Object * oldObject,
Object * newObject )
virtualinherited

Replace references.

Reimplemented in Line, and Sequence.

Definition at line 256 of file Object.cpp.

References Object().

Here is the call graph for this function:

◆ setDirty()

void Object::setDirty ( bool dirty)
inherited

Set/reset the [b]modified[/b] flag.

Definition at line 281 of file Object.cpp.

References modified.

Referenced by OpalData::define(), OpalData::makeDirty(), and RealVariable::RealVariable().

Here is the caller graph for this function:

◆ setFlag()

void Object::setFlag ( bool flag)
inherited

Flag/unflag this object, e. g. to control output of objects for.

Definition at line 292 of file Object.cpp.

References flagged.

◆ setOpalName()

void Object::setOpalName ( const std::string & name)
inherited

Set object name.

Definition at line 329 of file Object.cpp.

References itsName.

Referenced by Beam::update(), BoundaryGeometry::update(), and OpalFilter::update().

Here is the caller graph for this function:

◆ setParent()

void Object::setParent ( Object * parent)
inherited

Set parent object.

Definition at line 334 of file Object.cpp.

References itsParent, and Object().

Referenced by OpalData::erase().

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

◆ setShared()

void Object::setShared ( bool flag)
virtualinherited

Set/reset shared flag.

Reimplemented in Element.

Definition at line 276 of file Object.cpp.

References sharedFlag.

Referenced by OpalParser::parseDefine(), and Element::setShared().

Here is the caller graph for this function:

◆ shouldTrace()

bool Action::shouldTrace ( ) const
virtual

Trace flag.

Implements Object.

Definition at line 39 of file Action.cpp.

◆ shouldUpdate()

bool Action::shouldUpdate ( ) const
virtual

Update flag.

Implements Object.

Definition at line 44 of file Action.cpp.

◆ unregisterReference()

void Object::unregisterReference ( Invalidator * a)
inherited

Unegister a reference to this object.

Definition at line 185 of file Object.cpp.

References references.

◆ update()

Member Data Documentation

◆ builtin

◆ flagged

bool Object::flagged
protectedinherited

Object flag.

Definition at line 242 of file Object.h.

Referenced by isFlagged(), Object(), Object(), and setFlag().

◆ itsAttr

std::vector<Attribute> Object::itsAttr
inherited

The object attributes.

Definition at line 216 of file Object.h.

Referenced by Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry::BoundaryGeometry(), BoundaryGeometry::BoundaryGeometry(), DumpEMFields::buildGrid(), DumpFields::buildGrid(), Call::Call(), copyAttributes(), Distribution::Distribution(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), Echo::Echo(), Beam::execute(), Call::execute(), Echo::execute(), Help::execute(), Option::execute(), PSystem::execute(), Select::execute(), System::execute(), Title::execute(), TrackCmd::execute(), TrackRun::execute(), Value::execute(), FieldSolverCmd::FieldSolverCmd(), findAttribute(), findAttribute(), BoundaryGeometry::getA(), OpalElement::getApert(), BoundaryGeometry::getB(), BoolConstant::getBool(), FieldSolverCmd::getBoxIncr(), BoundaryGeometry::getC(), Beam::getCharge(), Beam::getCurrent(), FieldSolverCmd::getDomDec(), TrackCmd::getDT(), TrackCmd::getDTAU(), TrackCmd::getDTSCINIT(), BoundaryGeometry::getFilename(), Beam::getFrequency(), BoundaryGeometry::getL1(), BoundaryGeometry::getL2(), BoundaryGeometry::getLength(), Line::getLength(), OpalElement::getLength(), Sequence::getLength(), Beam::getMass(), TrackCmd::getMaxSteps(), Beam::getNumberOfParticles(), FieldSolverCmd::getNX(), FieldSolverCmd::getNY(), FieldSolverCmd::getNZ(), Beam::getParticleName(), RealConstant::getReal(), RealVariable::getReal(), RealVector::getRealComponent(), Sequence::getReference(), BoundaryGeometry::getS(), TrackCmd::getStepsPerTurn(), StringConstant::getString(), TrackCmd::getT0(), TrackCmd::getTimeIntegrator(), BoundaryGeometry::getTopology(), FieldSolverCmd::getType(), TrackCmd::getZStart(), TrackCmd::getZStop(), Help::Help(), BoundaryGeometry::initialize(), OpalFilter::initOpalFilter(), Line::Line(), Object(), Object(), OpalCavity::OpalCavity(), OpalDrift::OpalDrift(), OpalElement::OpalElement(), OpalFilter::OpalFilter(), OpalOffset::OpalGlobalCartesianOffset::OpalGlobalCartesianOffset(), OpalOffset::OpalGlobalCylindricalOffset::OpalGlobalCylindricalOffset(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalOffset::OpalLocalCylindricalOffset::OpalLocalCylindricalOffset(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalProbe::OpalProbe(), OpalRingDefinition::OpalRingDefinition(), OpalSolenoid::OpalSolenoid(), OpalTravelingWave::OpalTravelingWave(), OpalVacuum::OpalVacuum(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), Option::Option(), Option::Option(), Line::parse(), Sequence::parse(), DumpEMFields::parseCoordinateSystem(), Beam::print(), BoolConstant::print(), DumpEMFields::print(), DumpFields::print(), print(), OpalFilter::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), Sequence::print(), StringConstant::print(), TrackRun::print(), printHelp(), BoundaryGeometry::printInfo(), FieldSolverCmd::printInfo(), BoolConstant::printValue(), RealConstant::printValue(), RealVariable::printValue(), RealVector::printValue(), StringConstant::printValue(), PSystem::PSystem(), RealConstant::RealConstant(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVariable::RealVariable(), RealVector::RealVector(), registerOwnership(), OpalElement::registerOwnership(), Select::Select(), Select::select(), Sequence::Sequence(), Distribution::setDistParametersFlatTop(), Distribution::setDistParametersMultiVariateGauss(), Distribution::setDistType(), FieldSolverCmd::setNX(), FieldSolverCmd::setNY(), FieldSolverCmd::setNZ(), TrackRun::setRunMethod(), Distribution::setSigmaP_m(), Distribution::setSigmaR_m(), TrackRun::setupBoundaryGeometry(), StringConstant::StringConstant(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), Beam::update(), FieldSolverCmd::update(), OpalCavity::update(), OpalDrift::update(), OpalElement::update(), OpalMonitor::update(), OpalMultipole::update(), OpalMultipoleT::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalProbe::update(), OpalRingDefinition::update(), OpalSolenoid::update(), OpalTravelingWave::update(), OpalVacuum::update(), OpalVerticalFFAMagnet::update(), Option::update(), OpalElement::updateUnknown(), Value::Value(), ValueDefinition::value(), and ValueDefinition::value().

◆ itsHelp

std::string Object::itsHelp
privateinherited

Definition at line 258 of file Object.h.

Referenced by Object(), Object(), and printHelp().

◆ itsName

std::string Object::itsName
privateinherited

Definition at line 255 of file Object.h.

Referenced by getOpalName(), Object(), Object(), and setOpalName().

◆ itsParent

Object* Object::itsParent
privateinherited

Definition at line 252 of file Object.h.

Referenced by getBaseObject(), getParent(), Object(), Object(), and setParent().

◆ modified

bool Object::modified
protectedinherited

Dirty flag.

Definition at line 238 of file Object.h.

Referenced by isDirty(), Object(), Object(), and setDirty().

◆ occurrence

int Object::occurrence
privateinherited

Definition at line 261 of file Object.h.

Referenced by clear(), increment(), Object(), Object(), and occurrenceCount().

◆ refCount

int RCObject::refCount
mutableprivateinherited

Definition at line 76 of file RCObject.h.

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

◆ references

std::set<Invalidator *> Object::references
privateinherited

Definition at line 268 of file Object.h.

Referenced by registerReference(), unregisterReference(), and ~Object().

◆ sharedFlag

bool Object::sharedFlag
privateinherited

Definition at line 271 of file Object.h.

Referenced by isShared(), Object(), Object(), and setShared().

◆ timeStamp

double Object::timeStamp
privateinherited

Definition at line 264 of file Object.h.


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