The Gaudi Framework  v29r3 (fa547fc2)
Gaudi::PluginService::Factory< R, Args > Class Template Reference

Class wrapping the signature for a factory with any number of arguments. More...

#include <Gaudi/PluginService.h>

Public Types

typedef R ReturnType
 
typedef R(* FuncType) (Args &&...)
 

Static Public Member Functions

static ReturnType create (const std::string &id, Args...args)
 
template<typename T >
static ReturnType create (const T &id, Args...args)
 

Detailed Description

template<typename R, typename... Args>
class Gaudi::PluginService::Factory< R, Args >

Class wrapping the signature for a factory with any number of arguments.

Definition at line 45 of file PluginService.h.

Member Typedef Documentation

template<typename R , typename... Args>
typedef R( * Gaudi::PluginService::Factory< R, Args >::FuncType) (Args &&...)

Definition at line 49 of file PluginService.h.

template<typename R , typename... Args>
typedef R Gaudi::PluginService::Factory< R, Args >::ReturnType

Definition at line 48 of file PluginService.h.

Member Function Documentation

template<typename R , typename... Args>
static ReturnType Gaudi::PluginService::Factory< R, Args >::create ( const std::string id,
Args...  args 
)
inlinestatic

Definition at line 51 of file PluginService.h.

52  {
53  const FuncType c = Details::getCreator<FuncType>( id );
54  return c ? ( *c )( std::forward<Args>( args )... ) : 0;
55  }
template<typename R , typename... Args>
template<typename T >
static ReturnType Gaudi::PluginService::Factory< R, Args >::create ( const T &  id,
Args...  args 
)
inlinestatic

Definition at line 58 of file PluginService.h.

59  {
61  o << id;
62  return create( o.str(), std::forward<Args>( args )... );
63  }
static ReturnType create(const std::string &id, Args...args)
Definition: PluginService.h:51

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