torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::generic::VisitorType< _Tp > Class Template Referenceabstract

An acyclic inoutVisitor implementation. More...

#include <VisitorType.hpp>

Inherits torc::generic::BaseVisitor.

Inherited by torc::generic::_impl::Copier< class Cell >, torc::generic::_impl::Copier< class Design >, torc::generic::_impl::Copier< class Event >, torc::generic::_impl::Copier< class ForbiddenEvent >, torc::generic::_impl::Copier< class Instance >, torc::generic::_impl::Copier< class Instance >, torc::generic::_impl::Copier< class InstanceArray >, torc::generic::_impl::Copier< class InterfaceJoinedInfo >, torc::generic::_impl::Copier< class Library >, torc::generic::_impl::Copier< class LogicalResponse >, torc::generic::_impl::Copier< class LogicElement >, torc::generic::_impl::Copier< class LogicValue >, torc::generic::_impl::Copier< class Net >, torc::generic::_impl::Copier< class Net >, torc::generic::_impl::Copier< class Net >, torc::generic::_impl::Copier< class NetBundle >, torc::generic::_impl::Copier< class Parameter >, torc::generic::_impl::Copier< class Parameter >, torc::generic::_impl::Copier< class ParameterArray >, torc::generic::_impl::Copier< class Permutable >, torc::generic::_impl::Copier< class Port >, torc::generic::_impl::Copier< class Port >, torc::generic::_impl::Copier< class Port >, torc::generic::_impl::Copier< class PortBundle >, torc::generic::_impl::Copier< class PortBundleReference >, torc::generic::_impl::Copier< class PortList >, torc::generic::_impl::Copier< class PortReference >, torc::generic::_impl::Copier< class PortReference >, torc::generic::_impl::Copier< class PortReference >, torc::generic::_impl::Copier< class Property >, torc::generic::_impl::Copier< class Root >, torc::generic::_impl::Copier< class ScalarNet >, torc::generic::_impl::Copier< class ScalarPort >, torc::generic::_impl::Copier< class ScalarPortReference >, torc::generic::_impl::Copier< class Simulate >, torc::generic::_impl::Copier< class SimulationInfo >, torc::generic::_impl::Copier< class SingleInstance >, torc::generic::_impl::Copier< class SingleParameter >, torc::generic::_impl::Copier< class Status >, torc::generic::_impl::Copier< class Timing >, torc::generic::_impl::Copier< class VectorNet >, torc::generic::_impl::Copier< class VectorPort >, torc::generic::_impl::Copier< class VectorPortReference >, torc::generic::_impl::Copier< class View >, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::ObjectVisitor, torc::generic::PortRefCreator< _ReturnType >, torc::generic::PortRefCreator< _ReturnType >, torc::generic::PortRefCreator< _ReturnType >, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, torc::generic::VerilogExporterVisitor, and torc::generic::VerilogExporterVisitor.

+ Collaboration diagram for torc::generic::VisitorType< _Tp >:

Public Member Functions

virtual ~VisitorType () throw ()
 
virtual void visit (_Tp &client)=0 throw (Error)
 

Protected Member Functions

 VisitorType ()
 

Detailed Description

template<typename _Tp>
class torc::generic::VisitorType< _Tp >

An acyclic inoutVisitor implementation.

The VisitorType template acts as a template that can be derived by clients to add extrinsic virtual functions on class hierarchies. This is useful in situations where the user does not have direct handle to a derived class, but has a pointer/reference to a base class. This class defines a polymorphic method visit() that can be used to get a handle to the actual derived object and can therefore be programmed to perform arbitrary operations on it using public methods specific to the derived class object. For more information on the Visitor design pattern see: http://en.wikipedia.org/wiki/Visitor_pattern The inoutVisitor implementation in EOM follows the acyclic inoutVisitor implementation detailed in Andrei Alexandrescu's Modern C++ Design.

Definition at line 57 of file VisitorType.hpp.

Constructor & Destructor Documentation

template<typename _Tp >
torc::generic::VisitorType< _Tp >::VisitorType ( )
explicitprotected

Definition at line 74 of file VisitorType.hpp.

74 {}
template<typename _Tp >
torc::generic::VisitorType< _Tp >::~VisitorType ( )
throw (
)
virtual

Definition at line 76 of file VisitorType.hpp.

76 {}

Member Function Documentation

template<typename _Tp >
virtual void torc::generic::VisitorType< _Tp >::visit ( _Tp &  client)
throw (Error
)
pure virtual

Visit the target object. This will typically be a derived leaf type.

Parameters
[in,out]clientA reference to the target object
Exceptions
ErrorException generated by any of the functions called from inside visit()

+ Here is the caller graph for this function:


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