An object that receives an inoutVisitor.
The Visitable class provides an interface to all classes that want to make themselves visitable by the clients. Typically such classes will be leaf types that cannot be directly accessed by clients without using a dynamic_cast. This design is loosely based on the acyclic inoutVisitor concept defined by Alexandrescu in "Modern C++ Design".
Definition at line 38 of file Visitable.hpp.
virtual void torc::generic::Visitable::accept |
( |
BaseVisitor & |
inoutVisitor | ) |
|
throw | ( | Error |
| ) | | |
|
pure virtual |
Receive an inoutVisitor to this class. The visit method of the inoutVisitor is called and a reference to this object is passed as a parameter. It has to be noted however, that a dynamic_cast is performed inside this method. If the cast fails, an appropriate exception is thrown by this method. This situation can arise when the passed Visitor object does not inherit from the appropriate inoutVisitor specialization. See Visitor documentation for more details.
- Parameters
-
[in,out] | inoutVisitor | A reference to the inoutVisitor object |
- Exceptions
-
Error | Visitor type inappropriate for visiting this object or any other error thrown by the Visitor::throw() method. |
Implemented in torc::generic::Root, torc::generic::Permutable, torc::generic::PortBundle, torc::generic::Status, torc::generic::VectorPort, torc::generic::View, torc::generic::InterfaceJoinedInfo, torc::generic::LogicElement, torc::generic::ParameterArray, torc::generic::InstanceArray, torc::generic::Cell, torc::generic::VectorPortReference, torc::generic::VectorNet, torc::generic::Library, torc::generic::LogicValue, torc::generic::Simulate, torc::generic::Property, torc::generic::SingleParameter, torc::generic::Design, torc::generic::SimulationInfo, torc::generic::NetBundle, torc::generic::PortBundleReference, torc::generic::ScalarPort, torc::generic::ScalarNet, torc::generic::ScalarPortReference, torc::generic::SingleInstance, torc::generic::LogicalResponse, torc::generic::InstanceArrayMember, torc::generic::ParameterArrayElement, torc::generic::Event, torc::generic::VectorNetBit, torc::generic::VectorPortBit, torc::generic::Timing, torc::generic::ForbiddenEvent, torc::generic::VectorPortBitReference, and torc::generic::Apply.