OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
The base class for all OPAL elements. More...
#include <Element.h>
Public Types | |
enum | ReferenceType { IS_ENTRY, IS_CENTRE, IS_EXIT } |
Reference for element positioning. More... | |
Public Member Functions | |
virtual | ~Element () |
virtual bool | canReplaceBy (Object *object) |
Test if replacement is allowed. More... | |
virtual const std::string | getCategory () const |
Return the object category as a string. More... | |
virtual bool | shouldTrace () const |
Trace flag. More... | |
virtual bool | shouldUpdate () const |
Update flag. More... | |
virtual double | getLength () const =0 |
Return element length. More... | |
virtual double | getEntrance (ReferenceType) const |
Return arc length from origin to entrance (negative !). More... | |
virtual double | getExit (ReferenceType) const |
Return arc length from origin to exit (positive !). More... | |
virtual void | setShared (bool) |
Set shared flag. More... | |
ElementBase * | getElement () const |
Return the embedded CLASSIC element. More... | |
void | setElement (ElementBase *) |
Assign new CLASSIC element. More... | |
![]() | |
virtual | ~Object () |
virtual Object * | clone (const std::string &name)=0 |
Return a clone. More... | |
void | copyAttributes (const Object &) |
Copy attributes from another object. More... | |
virtual void | execute () |
Execute the command. More... | |
virtual Attribute * | findAttribute (const std::string &name) |
Find an attribute by name. More... | |
virtual const Attribute * | findAttribute (const std::string &name) const |
Find an attribute by name. More... | |
virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
Macro handler function. More... | |
virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
Macro handler function. More... | |
virtual void | parse (Statement &) |
Parse the object. More... | |
virtual void | parseShortcut (Statement &) |
Parser for single-attribute commands. More... | |
virtual void | print (std::ostream &) const |
Print the object. More... | |
virtual void | printValue (std::ostream &) const |
virtual void | printHelp (std::ostream &) const |
Print help. More... | |
virtual void | replace (Object *oldObject, Object *newObject) |
Replace references. More... | |
virtual void | update () |
Update this object. More... | |
bool | isBuiltin () const |
True, if [b]this[/b] is a built-in object. More... | |
virtual bool | isShared () const |
Shared flag. More... | |
void | setDirty (bool) |
Set/reset the [b]modified[/b] flag. More... | |
bool | isDirty () const |
True, if the [b]modified[/b] flag is set. More... | |
void | setFlag (bool) |
Flag/unflag this object, e. g. to control output of objects for. More... | |
bool | isFlagged () const |
True, if [b]this[/b] is flagged by setFlag(true). More... | |
const Object * | getBaseObject () const |
Return the object's base type object. More... | |
const std::string & | getOpalName () const |
Return object name. More... | |
Object * | getParent () const |
Return parent pointer. More... | |
bool | isTreeMember (const Object *subTree) const |
Test for tree membership. More... | |
void | setOpalName (const std::string &name) |
Set object name. More... | |
void | setParent (Object *) |
Set parent object. More... | |
void | clear () |
Clear the occurrence counter. More... | |
int | increment () |
Increment and return the occurrence counter. More... | |
int | occurrenceCount () |
Return the occurrence counter. More... | |
void | registerReference (Invalidator *a) |
Register a reference to this object. More... | |
void | unregisterReference (Invalidator *a) |
Unegister a reference to this object. More... | |
void | registerOwnership (const AttributeHandler::OwnerType &itsClass) const |
![]() | |
int | addReference () const |
Increment reference count. More... | |
int | removeReference () const |
Decrement the reference count. More... | |
bool | isShared () const |
Test for sharing. More... | |
Static Public Member Functions | |
static Element * | find (const std::string &name) |
Find named Element. More... | |
Protected Member Functions | |
Element (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Element (const std::string &name, Element *parent) | |
Constructor for clones. More... | |
![]() | |
Object (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Object (const std::string &name, Object *parent) | |
Constructor for clones. More... | |
![]() | |
RCObject () | |
Default constructor. More... | |
RCObject (const RCObject &) | |
Copy constructor. More... | |
virtual | ~RCObject ()=0 |
RCObject & | operator= (const RCObject &right) |
Private Member Functions | |
Element () | |
Element (const Element &) | |
void | operator= (const Element &) |
Private Attributes | |
Pointer< ElementBase > | itsClassicElement |
Additional Inherited Members | |
![]() | |
std::vector< Attribute > | itsAttr |
The object attributes (see Attribute.hh). More... | |
![]() | |
bool | builtin |
Built-in flag. More... | |
bool | modified |
Dirty flag. More... | |
bool | flagged |
Object flag. More... | |
|
virtual |
Definition at line 28 of file Element.cpp.
|
protected |
Constructor for exemplars.
Definition at line 99 of file Element.cpp.
|
protected |
Constructor for clones.
Definition at line 104 of file Element.cpp.
|
private |
|
private |
|
virtual |
Test if replacement is allowed.
Reimplemented from Object.
Definition at line 32 of file Element.cpp.
|
static |
Find named Element.
Definition at line 37 of file Element.cpp.
References OpalData::find(), and OpalData::getInstance().
Referenced by Sequence::addEndMarkers(), MakeSequenceNS::SequenceWriter::applyDefault(), Aperture::calcul(), EditReplace::execute(), Flatten< Member >::execute(), SequenceParser::findNeighbourPositions(), Selector::handleElement(), Edit::install(), Line::parse(), Edit::replaceMultiple(), Edit::replaceSingle(), Aperture::run(), Selector::Selector(), and Sequence::storeLine().
|
virtual |
Return the object category as a string.
Implements Object.
Reimplemented in BeamSequence.
Definition at line 48 of file Element.cpp.
|
inline |
Return the embedded CLASSIC element.
Definition at line 128 of file Element.h.
References itsClassicElement.
Referenced by Sequence::addEndMarkers(), EditReplace::execute(), EditInstall::execute(), Line::fetchLine(), Sequence::fetchLine(), OpalMarker::OpalMarker(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVariableRFCavityFringeField::OpalVariableRFCavityFringeField(), Line::parse(), Line::replace(), Sequence::replace(), OpalSource::update(), OpalHMonitor::update(), OpalVMonitor::update(), OpalInstrument::update(), OpalMarker::update(), OpalSBend::update(), OpalMonitor::update(), OpalRBend::update(), OpalBeamStripping::update(), OpalVerticalFFAMagnet::update(), OpalSRot::update(), OpalYRot::update(), OpalSeparator::update(), OpalCyclotronValley::update(), OpalDegrader::update(), OpalRCollimator::update(), OpalSlit::update(), OpalSolenoid::update(), OpalECollimator::update(), OpalDrift::update(), OpalFlexibleCollimator::update(), OpalHKicker::update(), OpalWire::update(), OpalSeptum::update(), OpalPatch::update(), OpalMultipole::update(), OpalCCollimator::update(), OpalPepperPot::update(), OpalSextupole::update(), OpalOctupole::update(), OpalParallelPlate::update(), OpalProbe::update(), OpalRBend3D::update(), OpalStripper::update(), OpalQuadrupole::update(), OpalVKicker::update(), OpalSBend3D::update(), OpalKicker::update(), OpalTravelingWave::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalScalingFFAMagnet::update(), OpalRingDefinition::update(), OpalMultipoleTStraight::update(), OpalVariableRFCavity::update(), OpalCavity::update(), OpalMultipoleTCurvedVarRadius::update(), OpalMultipoleT::update(), OpalMultipoleTCurvedConstRadius::update(), OpalVariableRFCavityFringeField::update(), OpalCyclotron::update(), and OpalElement::update().
|
virtual |
Return arc length from origin to entrance (negative !).
Definition at line 63 of file Element.cpp.
References getLength(), IS_CENTRE, and IS_EXIT.
Referenced by MakeSequenceNS::SequenceWriter::applyDefault(), Sequence::findDriftLength(), and Sequence::getEntrance().
|
virtual |
Return arc length from origin to exit (positive !).
Definition at line 78 of file Element.cpp.
References getLength(), IS_CENTRE, and IS_ENTRY.
Referenced by MakeSequenceNS::SequenceWriter::applyDefault(), Sequence::findDriftLength(), and Sequence::getExit().
|
pure virtual |
Return element length.
Implemented in OpalElement, Sequence, and Line.
Referenced by SequenceParser::findNeighbourPositions(), getEntrance(), and getExit().
|
private |
|
inline |
Assign new CLASSIC element.
Definition at line 133 of file Element.h.
References itsClassicElement.
Referenced by Line::Line(), OpalBeamStripping::OpalBeamStripping(), OpalCavity::OpalCavity(), OpalCCollimator::OpalCCollimator(), OpalCyclotron::OpalCyclotron(), OpalCyclotronValley::OpalCyclotronValley(), OpalDegrader::OpalDegrader(), OpalDrift::OpalDrift(), OpalECollimator::OpalECollimator(), OpalFlexibleCollimator::OpalFlexibleCollimator(), OpalHKicker::OpalHKicker(), OpalHMonitor::OpalHMonitor(), OpalInstrument::OpalInstrument(), OpalKicker::OpalKicker(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalMarker::OpalMarker(), OpalMonitor::OpalMonitor(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalMultipoleTCurvedConstRadius::OpalMultipoleTCurvedConstRadius(), OpalMultipoleTCurvedVarRadius::OpalMultipoleTCurvedVarRadius(), OpalMultipoleTStraight::OpalMultipoleTStraight(), OpalOctupole::OpalOctupole(), OpalParallelPlate::OpalParallelPlate(), OpalPatch::OpalPatch(), OpalPepperPot::OpalPepperPot(), OpalProbe::OpalProbe(), OpalQuadrupole::OpalQuadrupole(), OpalRBend::OpalRBend(), OpalRBend3D::OpalRBend3D(), OpalRCollimator::OpalRCollimator(), OpalRingDefinition::OpalRingDefinition(), OpalSBend::OpalSBend(), OpalSBend3D::OpalSBend3D(), OpalScalingFFAMagnet::OpalScalingFFAMagnet(), OpalSeparator::OpalSeparator(), OpalSeptum::OpalSeptum(), OpalSextupole::OpalSextupole(), OpalSlit::OpalSlit(), OpalSolenoid::OpalSolenoid(), OpalSource::OpalSource(), OpalSRot::OpalSRot(), OpalStripper::OpalStripper(), OpalTravelingWave::OpalTravelingWave(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVariableRFCavityFringeField::OpalVariableRFCavityFringeField(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), OpalVKicker::OpalVKicker(), OpalVMonitor::OpalVMonitor(), OpalWire::OpalWire(), OpalYRot::OpalYRot(), Sequence::Sequence(), OpalVerticalFFAMagnet::update(), OpalSBend3D::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalScalingFFAMagnet::update(), OpalRingDefinition::update(), OpalMultipoleTStraight::update(), OpalVariableRFCavity::update(), OpalMultipoleT::update(), OpalMultipoleTCurvedVarRadius::update(), OpalMultipoleTCurvedConstRadius::update(), OpalVariableRFCavityFringeField::update(), and Replacer::visitFlaggedElmPtr().
|
virtual |
Set shared flag.
Reimplemented from Object.
Definition at line 93 of file Element.cpp.
References itsClassicElement, ElementBase::makeSharable(), and Object::setShared().
|
virtual |
|
virtual |
|
private |
Definition at line 121 of file Element.h.
Referenced by getElement(), setElement(), and setShared().