#include <LocationVisitor.hpp>

Public Member Functions | |
| virtual | ~LocationVisitor () |
| virtual void | visitNamedLoc (NamedLoc &loc)=0 |
| virtual void | visitUnnamedLoc (UnnamedLoc &loc)=0 |
| virtual void | visitInvisibleLoc (InvisibleLoc &loc)=0 |
| virtual void | visitUnknownLoc (UnknownLoc &loc)=0 |
| virtual void | visitLocSubSet (LocSubSet &loc)=0 |
| virtual void | visitLocIdxSubSet (LocIdxSubSet &loc) |
| virtual void | visitLocFieldSubSet (LocFieldSubSet &loc) |
Protected Member Functions | |
| LocationVisitor () | |
LocationVisitor is an abstract base class used to implement the Visitor pattern on Locations and possible instances of the LocSubSet decorator subclass.
The only place in the Location hierarchy where changes can occur are new LocSubSet subclasses. Each time a new subclass is created a new method must be added to this visitor. As long as existing concrete visitors have a default implementation for the LocSubSet class they will still work properly.
Memory Management: It is assumed that the concrete visitors will NOT keep references to Location and that the Location will not be deallocated while an LocationVisitor is visiting a Location. Concrete visitors should also never take the address of a Location and pass it to a method that requires an OA_ptr<Location>.
Definition at line 45 of file LocationVisitor.hpp.
| OA::LocationVisitor::LocationVisitor | ( | ) | [inline, protected] |
Definition at line 47 of file LocationVisitor.hpp.
| virtual OA::LocationVisitor::~LocationVisitor | ( | ) | [inline, virtual] |
Definition at line 49 of file LocationVisitor.hpp.
| virtual void OA::LocationVisitor::visitInvisibleLoc | ( | InvisibleLoc & | loc | ) | [pure virtual] |
Implemented in OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DataFlow::CalleeToCallerVisitor, OA::InvisibleLocMayOverlapVisitor, OA::InvisibleLocMustOverlapVisitor, OA::LocFieldSubSetMustOverlapVisitor, OA::LocIdxSubSetMustOverlapVisitor, OA::LocSubSetMustOverlapVisitor, OA::NamedLocMayOverlapVisitor, OA::NamedLocMustOverlapVisitor, OA::UnnamedLocMayOverlapVisitor, and OA::SideEffect::VisibleVisitor.
Referenced by OA::InvisibleLoc::acceptVisitor().
| void OA::LocationVisitor::visitLocFieldSubSet | ( | LocFieldSubSet & | loc | ) | [virtual] |
Reimplemented in OA::LocFieldSubSetMustOverlapVisitor.
Definition at line 24 of file LocationVisitor.cpp.
References visitLocSubSet().
Referenced by OA::LocFieldSubSet::acceptVisitor().

| void OA::LocationVisitor::visitLocIdxSubSet | ( | LocIdxSubSet & | loc | ) | [virtual] |
Reimplemented in OA::LocFieldSubSetMustOverlapVisitor, and OA::LocIdxSubSetMustOverlapVisitor.
Definition at line 20 of file LocationVisitor.cpp.
References visitLocSubSet().
Referenced by OA::LocIdxSubSet::acceptVisitor().

| virtual void OA::LocationVisitor::visitLocSubSet | ( | LocSubSet & | loc | ) | [pure virtual] |
Implemented in OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DataFlow::CalleeToCallerVisitor, OA::InvisibleLocMayOverlapVisitor, OA::InvisibleLocMustOverlapVisitor, OA::LocFieldSubSetMustOverlapVisitor, OA::LocIdxSubSetMustOverlapVisitor, OA::LocSubSetMustOverlapVisitor, OA::NamedLocMayOverlapVisitor, OA::NamedLocMustOverlapVisitor, OA::UnnamedLocMayOverlapVisitor, and OA::SideEffect::VisibleVisitor.
Referenced by OA::LocSubSet::acceptVisitor(), visitLocFieldSubSet(), and visitLocIdxSubSet().
| virtual void OA::LocationVisitor::visitNamedLoc | ( | NamedLoc & | loc | ) | [pure virtual] |
Implemented in OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DataFlow::CalleeToCallerVisitor, OA::InvisibleLocMayOverlapVisitor, OA::InvisibleLocMustOverlapVisitor, OA::LocFieldSubSetMustOverlapVisitor, OA::LocIdxSubSetMustOverlapVisitor, OA::LocSubSetMustOverlapVisitor, OA::NamedLocMayOverlapVisitor, OA::NamedLocMustOverlapVisitor, OA::UnnamedLocMayOverlapVisitor, and OA::SideEffect::VisibleVisitor.
Referenced by OA::NamedLoc::acceptVisitor().
| virtual void OA::LocationVisitor::visitUnknownLoc | ( | UnknownLoc & | loc | ) | [pure virtual] |
Implemented in OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DataFlow::CalleeToCallerVisitor, OA::InvisibleLocMayOverlapVisitor, OA::InvisibleLocMustOverlapVisitor, OA::LocFieldSubSetMustOverlapVisitor, OA::LocIdxSubSetMustOverlapVisitor, OA::LocSubSetMustOverlapVisitor, OA::NamedLocMayOverlapVisitor, OA::NamedLocMustOverlapVisitor, OA::UnnamedLocMayOverlapVisitor, and OA::SideEffect::VisibleVisitor.
Referenced by OA::UnknownLoc::acceptVisitor().
| virtual void OA::LocationVisitor::visitUnnamedLoc | ( | UnnamedLoc & | loc | ) | [pure virtual] |
Implemented in OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DUG::IndepLocVisitor, OA::DUG::depLocVisitor, OA::DataFlow::CalleeToCallerVisitor, OA::InvisibleLocMayOverlapVisitor, OA::InvisibleLocMustOverlapVisitor, OA::LocFieldSubSetMustOverlapVisitor, OA::LocIdxSubSetMustOverlapVisitor, OA::LocSubSetMustOverlapVisitor, OA::NamedLocMayOverlapVisitor, OA::NamedLocMustOverlapVisitor, OA::UnnamedLocMayOverlapVisitor, and OA::SideEffect::VisibleVisitor.
Referenced by OA::UnnamedLoc::acceptVisitor().
1.6.1