|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
|
The base class for all OPAL objects. More...
#include <Object.h>
Public Member Functions | |
| virtual | ~Object () |
| virtual bool | canReplaceBy (Object *object) |
| Test if replacement is allowed. | |
| virtual Object * | clone (const std::string &name)=0 |
| Return a clone. | |
| void | copyAttributes (const Object &) |
| Copy attributes from another object. | |
| virtual void | execute () |
| Execute the command. | |
| virtual Attribute * | findAttribute (const std::string &name) |
| Find an attribute by name. | |
| virtual const Attribute * | findAttribute (const std::string &name) const |
| Find an attribute by name. | |
| virtual const std::string | getCategory () const =0 |
| Return the object category as a string. | |
| virtual bool | shouldTrace () const =0 |
| Trace flag. | |
| virtual bool | shouldUpdate () const =0 |
| Update flag. | |
| virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
| Macro handler function. | |
| virtual Object * | makeInstance (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 Object * | getBaseObject () const |
| Return the object's base type object. | |
| const std::string & | getOpalName () const |
| Return object name. | |
| Object * | getParent () 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< Attribute > | itsAttr |
| The object attributes. | |
Protected Member Functions | |
| Object (int size, const char *name, const char *help) | |
| Constructor for exemplars. | |
| Object (const std::string &name, Object *parent) | |
| Constructor for clones. | |
Protected Attributes | |
| bool | builtin |
| Built-in flag. | |
| bool | modified |
| Dirty flag. | |
| bool | flagged |
| Object flag. | |
Private Member Functions | |
| Object () | |
| Object (const Object &object) | |
| void | operator= (const Object &) |
Private Attributes | |
| Object * | itsParent |
| std::string | itsName |
| std::string | itsHelp |
| int | occurrence |
| double | timeStamp |
| std::set< Invalidator * > | references |
| bool | sharedFlag |
| int | refCount |
|
virtual |
Definition at line 39 of file Object.cpp.
References references.
|
protected |
Constructor for exemplars.
Definition at line 354 of file Object.cpp.
References builtin, flagged, itsAttr, itsHelp, itsName, itsParent, modified, occurrence, RCObject::RCObject(), and sharedFlag.
Referenced by Action::Action(), Action::Action(), Action::canReplaceBy(), Beam::canReplaceBy(), BoolConstant::canReplaceBy(), BoundaryGeometry::canReplaceBy(), Distribution::canReplaceBy(), Element::canReplaceBy(), canReplaceBy(), OpalFilter::canReplaceBy(), RealConstant::canReplaceBy(), RealVariable::canReplaceBy(), RealVector::canReplaceBy(), StringConstant::canReplaceBy(), Table::canReplaceBy(), clone(), copyAttributes(), Definition::Definition(), Definition::Definition(), Element::Element(), Element::Element(), Help::execute(), Select::execute(), getBaseObject(), getParent(), isTreeMember(), LineTemplate::Line, Line::LineTemplate, LineTemplate::LineTemplate(), Macro::Macro(), Macro::Macro(), LineTemplate::makeInstance(), MacroCmd::makeInstance(), makeInstance(), SequenceTemplate::makeInstance(), Line::makeTemplate(), LineTemplate::makeTemplate(), MacroCmd::makeTemplate(), makeTemplate(), Sequence::makeTemplate(), SequenceTemplate::makeTemplate(), Object(), Object(), Line::operator=(), LineTemplate::operator=(), operator=(), SequenceTemplate::operator=(), print(), OpalElement::print(), Line::replace(), replace(), Sequence::replace(), SequenceTemplate::Sequence, SequenceTemplate::SequenceTemplate(), setParent(), shouldUpdate(), Table::Table(), Table::Table(), ValueDefinition::ValueDefinition(), and ValueDefinition::ValueDefinition().
|
protected |
Constructor for clones.
Definition at line 366 of file Object.cpp.
References builtin, flagged, itsAttr, itsHelp, itsName, itsParent, modified, Object(), occurrence, RCObject::RCObject(), and sharedFlag.
|
private |
|
private |
|
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().
|
virtual |
Test if replacement is allowed.
Reimplemented in Action, Beam, BoolConstant, BoundaryGeometry, Distribution, Element, OpalFilter, RealConstant, RealVariable, RealVector, StringConstant, and Table.
Definition at line 48 of file Object.cpp.
References Object().
Referenced by OpalData::define().
| void Object::clear | ( | ) |
|
pure virtual |
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().
| void Object::copyAttributes | ( | const Object & | source | ) |
Copy attributes from another object.
Definition at line 54 of file Object.cpp.
References itsAttr, and Object().
Referenced by LineTemplate::makeInstance(), and SequenceTemplate::makeInstance().
|
virtual |
Execute the command.
Reimplemented in Beam, BoundaryGeometry, Call, Distribution, DumpEMFields, DumpFields, Echo, FieldSolverCmd, Help, MacroCmd, OpalFilter, Option, PSystem, Quit, Select, Stop, System, Title, TrackCmd, TrackEnd, TrackRun, and Value.
Definition at line 59 of file Object.cpp.
|
virtual |
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().
|
virtual |
| const Object * Object::getBaseObject | ( | ) | const |
Return the object's base type object.
Definition at line 301 of file Object.cpp.
References itsParent, and Object().
|
pure virtual |
Return the object category as a string.
Implemented in Action, BeamSequence, Definition, Element, Macro, Table, and ValueDefinition.
Referenced by OpalData::getVariableNames().
| const std::string & Object::getOpalName | ( | ) | const |
Return object name.
Definition at line 308 of file Object.cpp.
References itsName.
Referenced by Macro::clone(), OpalOffset::OpalLocalCartesianOffset::clone(), OpalData::create(), OpalData::define(), Sequence::findDriftLength(), ValueDefinition::getBool(), ValueDefinition::getBoolComponent(), ValueDefinition::getReal(), ValueDefinition::getRealComponent(), ValueDefinition::getString(), ValueDefinition::getStringComponent(), LineTemplate::makeInstance(), makeInstance(), SequenceTemplate::makeInstance(), parse(), SequenceParser::parsePosition(), parseShortcut(), Beam::print(), BoolConstant::print(), Line::print(), print(), OpalElement::print(), OpalFilter::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), Sequence::print(), StringConstant::print(), BoundaryGeometry::printInfo(), FieldSolverCmd::printInfo(), registerOwnership(), OpalElement::registerOwnership(), Line::replace(), Sequence::replace(), Beam::update(), BoundaryGeometry::update(), OpalFilter::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), and OpalOffset::OpalLocalCylindricalOffset::update().
| Object * Object::getParent | ( | ) | const |
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().
| int Object::increment | ( | ) |
Increment and return the occurrence counter.
Definition at line 344 of file Object.cpp.
References occurrence.
Referenced by Line::parse(), and Sequence::storeLine().
| bool Object::isBuiltin | ( | ) | const |
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().
| bool Object::isDirty | ( | ) | const |
True, if the [b]modified[/b] flag is set.
Definition at line 287 of file Object.cpp.
References modified.
| bool Object::isFlagged | ( | ) | const |
True, if [b]this[/b] is flagged by setFlag(true).
Definition at line 297 of file Object.cpp.
References flagged.
|
virtual |
Shared flag.
Definition at line 271 of file Object.cpp.
References sharedFlag.
Referenced by Sequence::print().
| bool Object::isTreeMember | ( | const Object * | subTree | ) | const |
Test for tree membership.
Definition at line 318 of file Object.cpp.
References Object().
Referenced by Selector::handleElement(), and OpalParser::parseAssign().
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().
|
virtual |
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().
| int Object::occurrenceCount | ( | ) |
|
private |
|
virtual |
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().
|
virtual |
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().
|
virtual |
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().
|
virtual |
Print help.
Definition at line 199 of file Object.cpp.
References gmsg, itsAttr, and itsHelp.
Referenced by Help::execute(), and main().
|
inlinevirtual |
Reimplemented in BoolConstant, RealConstant, RealVariable, RealVector, and StringConstant.
Definition at line 280 of file Object.h.
References print().
| void Object::registerOwnership | ( | const AttributeHandler::OwnerType & | itsClass | ) | const |
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().
| void Object::registerReference | ( | Invalidator * | a | ) |
Register a reference to this object.
Definition at line 180 of file Object.cpp.
References references.
|
inlineinherited |
Replace references.
Reimplemented in Line, and Sequence.
Definition at line 256 of file Object.cpp.
References Object().
| void Object::setDirty | ( | bool | dirty | ) |
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().
| void Object::setFlag | ( | bool | flag | ) |
Flag/unflag this object, e. g. to control output of objects for.
Definition at line 292 of file Object.cpp.
References flagged.
| void Object::setOpalName | ( | const std::string & | name | ) |
Set object name.
Definition at line 329 of file Object.cpp.
References itsName.
Referenced by Beam::update(), BoundaryGeometry::update(), and OpalFilter::update().
| void Object::setParent | ( | Object * | parent | ) |
Set parent object.
Definition at line 334 of file Object.cpp.
References itsParent, and Object().
Referenced by OpalData::erase().
|
virtual |
Set/reset shared flag.
Reimplemented in Element.
Definition at line 276 of file Object.cpp.
References sharedFlag.
Referenced by OpalParser::parseDefine(), and Element::setShared().
|
pure virtual |
Trace flag.
Implemented in Action, Definition, Element, Macro, Table, and ValueDefinition.
Referenced by OpalParser::execute().
|
pure virtual |
Update flag.
Implemented in Action, Definition, Element, Macro, Table, and ValueDefinition.
References Object().
Referenced by OpalParser::execute().
| void Object::unregisterReference | ( | Invalidator * | a | ) |
Unegister a reference to this object.
Definition at line 185 of file Object.cpp.
References references.
|
virtual |
Update this object.
Reimplemented in Beam, BoundaryGeometry, Distribution, FieldSolverCmd, OpalCavity, OpalDrift, OpalElement, OpalFilter, OpalMarker, OpalMonitor, OpalMultipole, OpalMultipoleT, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalOffset::OpalLocalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalProbe, OpalRingDefinition, OpalSolenoid, OpalSource, OpalTravelingWave, OpalVacuum, OpalVerticalFFAMagnet, Option, and Sequence.
Definition at line 261 of file Object.cpp.
|
protected |
Built-in flag.
Definition at line 233 of file Object.h.
Referenced by Beam::Beam(), BoundaryGeometry::BoundaryGeometry(), isBuiltin(), Object(), Object(), OpalFilter::OpalFilter(), OpalMarker::OpalMarker(), RealConstant::RealConstant(), StringConstant::StringConstant(), and Table::~Table().
|
protected |
| std::vector<Attribute> Object::itsAttr |
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().
|
private |
Definition at line 258 of file Object.h.
Referenced by Object(), Object(), and printHelp().
|
private |
Definition at line 255 of file Object.h.
Referenced by getOpalName(), Object(), Object(), and setOpalName().
|
private |
Definition at line 252 of file Object.h.
Referenced by getBaseObject(), getParent(), Object(), Object(), and setParent().
|
protected |
|
private |
Definition at line 261 of file Object.h.
Referenced by clear(), increment(), Object(), Object(), and occurrenceCount().
|
mutableprivateinherited |
Definition at line 76 of file RCObject.h.
Referenced by addReference(), isShared(), RCObject(), RCObject(), and removeReference().
|
private |
Definition at line 268 of file Object.h.
Referenced by registerReference(), unregisterReference(), and ~Object().
|
private |
Definition at line 271 of file Object.h.
Referenced by isShared(), Object(), Object(), and setShared().