torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::generic::_impl::Copier< class Port > Class Template Referenceabstract

#include <Cloning.hpp>

+ Inheritance diagram for torc::generic::_impl::Copier< class Port >:
+ Collaboration diagram for torc::generic::_impl::Copier< class Port >:

Public Types

typedef Port Type
 
typedef boost::shared_ptr< TypePointer
 

Public Member Functions

Pointer operator() (const Pointer &inSource, const ObjectFactorySharedPtr &inFactory) throw (Error)
 
void visit (ScalarPort &inPort) throw (Error)
 
void visit (VectorPort &inPort) throw (Error)
 
void visit (PortBundle &inPort) throw (Error)
 
 Copier ()
 
 ~Copier () throw ()
 
virtual void visit (_Tp &client)=0 throw (Error)
 

Private Attributes

ObjectFactorySharedPtr mFactory
 
Pointer mReturnVal
 

Detailed Description

template<>
class torc::generic::_impl::Copier< class Port >

Definition at line 2042 of file Cloning.hpp.

Member Typedef Documentation

typedef boost::shared_ptr<Type> torc::generic::_impl::Copier< class Port >::Pointer

Definition at line 2046 of file Cloning.hpp.

Definition at line 2045 of file Cloning.hpp.

Constructor & Destructor Documentation

Definition at line 2082 of file Cloning.hpp.

2083  mReturnVal() {
2084  }
VisitorType< PortBundle > Visitor
Definition: PortBundle.hpp:51
VisitorType< VectorPort > Visitor
Definition: VectorPort.hpp:54
VisitorType< ScalarPort > Visitor
Definition: ScalarPort.hpp:49
torc::generic::_impl::Copier< class Port >::~Copier ( )
throw (
)
inline

Definition at line 2086 of file Cloning.hpp.

2086  {
2087  }

Member Function Documentation

Pointer torc::generic::_impl::Copier< class Port >::operator() ( const Pointer inSource,
const ObjectFactorySharedPtr inFactory 
)
throw (Error
)
inline

Definition at line 2048 of file Cloning.hpp.

2049  {
2050  mFactory = inFactory;
2051  inSource->accept(*this);
2052  return mReturnVal;
2053  }
template<typename _Tp >
virtual void torc::generic::VisitorType< _Tp >::visit ( _Tp &  client)
throw (Error
)
pure virtualinherited

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:

void torc::generic::_impl::Copier< class Port >::visit ( ScalarPort inPort)
throw (Error
)
inline

Definition at line 2055 of file Cloning.hpp.

2055  {
2056  try {
2057  copyObject(inPort, mFactory, mReturnVal);
2058  } catch(Error& e) {
2059  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
2060  throw;
2061  }
2062  }
void copyObject(ScalarPort &inPort, ObjectFactorySharedPtr &inFactory, _PointerType &outPointer)
Definition: Cloning.hpp:993

+ Here is the call graph for this function:

void torc::generic::_impl::Copier< class Port >::visit ( VectorPort inPort)
throw (Error
)
inline

Definition at line 2064 of file Cloning.hpp.

2064  {
2065  try {
2066  copyObject(inPort, mFactory, mReturnVal);
2067  } catch(Error& e) {
2068  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
2069  throw;
2070  }
2071  }
void copyObject(ScalarPort &inPort, ObjectFactorySharedPtr &inFactory, _PointerType &outPointer)
Definition: Cloning.hpp:993

+ Here is the call graph for this function:

void torc::generic::_impl::Copier< class Port >::visit ( PortBundle inPort)
throw (Error
)
inline

Definition at line 2073 of file Cloning.hpp.

2073  {
2074  try {
2075  copyObject(inPort, mFactory, mReturnVal);
2076  } catch(Error& e) {
2077  e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
2078  throw;
2079  }
2080  }
void copyObject(ScalarPort &inPort, ObjectFactorySharedPtr &inFactory, _PointerType &outPointer)
Definition: Cloning.hpp:993

+ Here is the call graph for this function:

Field Documentation

Definition at line 2090 of file Cloning.hpp.

Pointer torc::generic::_impl::Copier< class Port >::mReturnVal
private

Definition at line 2091 of file Cloning.hpp.


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