CernVM-FS  2.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PolymorphicConstruction< AbstractProductT, ParameterT, InfoT > Class Template Reference

#include <plugin.h>

Inheritance diagram for PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >:
Collaboration diagram for PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >:

Public Types

typedef std::vector< InfoT > IntrospectionData
 

Static Public Member Functions

static IntrospectionData Introspect ()
 
- Static Public Member Functions inherited from PolymorphicConstructionImpl< AbstractProductT, ParameterT, InfoT >
static AbstractProductT * Construct (const ParameterT &param)
 

Private Types

typedef
PolymorphicConstructionImpl
< AbstractProductT, ParameterT,
InfoT > 
T
 
typedef T::RegisteredPlugins RegisteredPlugins
 

Additional Inherited Members

- Public Member Functions inherited from PolymorphicConstructionImpl< AbstractProductT, ParameterT, InfoT >
virtual ~PolymorphicConstructionImpl ()
 
- Protected Types inherited from PolymorphicConstructionImpl< AbstractProductT, ParameterT, InfoT >
typedef AbstractFactory
< AbstractProductT, ParameterT,
InfoT > 
Factory
 
typedef std::vector< Factory * > RegisteredPlugins
 
- Protected Member Functions inherited from PolymorphicConstructionImpl< AbstractProductT, ParameterT, InfoT >
virtual bool Initialize ()
 
- Static Protected Member Functions inherited from PolymorphicConstructionImpl< AbstractProductT, ParameterT, InfoT >
static void LazilyRegisterPlugins ()
 
template<class ConcreteProductT >
static void RegisterPlugin ()
 
- Static Protected Attributes inherited from PolymorphicConstructionImpl< AbstractProductT, ParameterT, InfoT >
static RegisteredPlugins registered_plugins_
 

Detailed Description

template<class AbstractProductT, typename ParameterT, typename InfoT = void>
class PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >

Interface template for PolymorphicConstruction. This adds the static method Introspect() to each PolymorphicConstruction type implementation if (and only if) InfoT is not void. Backward compatibility: if InfoT is not defined (i.e. is void), Introspect() is not defined at all! (see template specialization)

Definition at line 292 of file plugin.h.

Member Typedef Documentation

template<class AbstractProductT, typename ParameterT, typename InfoT = void>
typedef std::vector<InfoT> PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >::IntrospectionData

Definition at line 299 of file plugin.h.

template<class AbstractProductT, typename ParameterT, typename InfoT = void>
typedef T::RegisteredPlugins PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >::RegisteredPlugins
private

Definition at line 296 of file plugin.h.

template<class AbstractProductT, typename ParameterT, typename InfoT = void>
typedef PolymorphicConstructionImpl<AbstractProductT, ParameterT, InfoT> PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >::T
private

Definition at line 295 of file plugin.h.

Member Function Documentation

template<class AbstractProductT, typename ParameterT, typename InfoT = void>
static IntrospectionData PolymorphicConstruction< AbstractProductT, ParameterT, InfoT >::Introspect ( )
inlinestatic

Definition at line 301 of file plugin.h.


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