DD4hep  1.28.0
Detector Description Toolkit for High Energy Physics
Public Member Functions | Protected Attributes | List of all members
dd4hep::detail::SimpleExtension< Q, T > Class Template Reference

Implementation class for the object extension mechanism. More...

#include <ExtensionEntry.h>

Inheritance diagram for dd4hep::detail::SimpleExtension< Q, T >:
dd4hep::ExtensionEntry

Public Member Functions

 SimpleExtension ()=delete
 Default constructor. More...
 
 SimpleExtension (T *p)
 Initializing constructor. More...
 
 SimpleExtension (const SimpleExtension &copy)=default
 Copy constructor. More...
 
virtual ~SimpleExtension ()=default
 Default destructor. More...
 
SimpleExtensionoperator= (const SimpleExtension &copy)=default
 Assignment operator. More...
 
virtual void * copy (void *) const override
 Virtual object copy operator. More...
 
virtual void destruct () const override
 Virtual object destructor. Function may still be called without side-effects. More...
 
virtual void * object () const override
 Virtual object accessor. More...
 
virtual ExtensionEntryclone (void *) const override
 Virtual entry clone function. More...
 
virtual unsigned long long int hash64 () const override
 Hash value. More...
 
- Public Member Functions inherited from dd4hep::ExtensionEntry
virtual ~ExtensionEntry ()=default
 Default destructor. More...
 
void invalidCall (const char *tag) const
 Callback on invalid call invokation. More...
 

Protected Attributes

T * ptr = 0
 
Q * iface = 0
 

Additional Inherited Members

- Protected Member Functions inherited from dd4hep::ExtensionEntry
 ExtensionEntry ()=default
 Default constructor. More...
 
 ExtensionEntry (const ExtensionEntry &copy)=default
 Copy constructor. More...
 

Detailed Description

template<typename Q, typename T>
class dd4hep::detail::SimpleExtension< Q, T >

Implementation class for the object extension mechanism.

This implementation class supports the object extension mechanism for dd4hep.

Note: The double-template implementation is necessary to support extensions using a virtual inheritance relationship between the interface and the concrete implementation of the extension object.

Author
M.Frank
Date
13.08.2013

Definition at line 77 of file ExtensionEntry.h.

Constructor & Destructor Documentation

◆ SimpleExtension() [1/3]

template<typename Q , typename T >
dd4hep::detail::SimpleExtension< Q, T >::SimpleExtension ( )
delete

Default constructor.

◆ SimpleExtension() [2/3]

template<typename Q , typename T >
dd4hep::detail::SimpleExtension< Q, T >::SimpleExtension ( T *  p)
inline

Initializing constructor.

Definition at line 85 of file ExtensionEntry.h.

◆ SimpleExtension() [3/3]

template<typename Q , typename T >
dd4hep::detail::SimpleExtension< Q, T >::SimpleExtension ( const SimpleExtension< Q, T > &  copy)
default

Copy constructor.

◆ ~SimpleExtension()

template<typename Q , typename T >
virtual dd4hep::detail::SimpleExtension< Q, T >::~SimpleExtension ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ clone()

template<typename Q , typename T >
virtual ExtensionEntry* dd4hep::detail::SimpleExtension< Q, T >::clone ( void *  ) const
inlineoverridevirtual

Virtual entry clone function.

Implements dd4hep::ExtensionEntry.

Definition at line 100 of file ExtensionEntry.h.

◆ copy()

template<typename Q , typename T >
virtual void* dd4hep::detail::SimpleExtension< Q, T >::copy ( void *  ) const
inlineoverridevirtual

Virtual object copy operator.

Implements dd4hep::ExtensionEntry.

Definition at line 93 of file ExtensionEntry.h.

◆ destruct()

template<typename Q , typename T >
virtual void dd4hep::detail::SimpleExtension< Q, T >::destruct ( ) const
inlineoverridevirtual

Virtual object destructor. Function may still be called without side-effects.

Implements dd4hep::ExtensionEntry.

Definition at line 95 of file ExtensionEntry.h.

◆ hash64()

template<typename Q , typename T >
virtual unsigned long long int dd4hep::detail::SimpleExtension< Q, T >::hash64 ( ) const
inlineoverridevirtual

Hash value.

Implements dd4hep::ExtensionEntry.

Definition at line 103 of file ExtensionEntry.h.

◆ object()

template<typename Q , typename T >
virtual void* dd4hep::detail::SimpleExtension< Q, T >::object ( ) const
inlineoverridevirtual

Virtual object accessor.

Implements dd4hep::ExtensionEntry.

Definition at line 97 of file ExtensionEntry.h.

◆ operator=()

template<typename Q , typename T >
SimpleExtension& dd4hep::detail::SimpleExtension< Q, T >::operator= ( const SimpleExtension< Q, T > &  copy)
default

Assignment operator.

Member Data Documentation

◆ iface

template<typename Q , typename T >
Q* dd4hep::detail::SimpleExtension< Q, T >::iface = 0
mutableprotected

Definition at line 80 of file ExtensionEntry.h.

◆ ptr

template<typename Q , typename T >
T* dd4hep::detail::SimpleExtension< Q, T >::ptr = 0
protected

Definition at line 79 of file ExtensionEntry.h.


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