CMS 3D CMS Logo

Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Friends

edmplugin::PluginFactory< R *(void)> Class Template Reference

#include <PluginFactory.h>

Inheritance diagram for edmplugin::PluginFactory< R *(void)>:
edmplugin::PluginFactoryBase

List of all members.

Classes

struct  PMaker
struct  PMakerBase

Public Member Functions

virtual const std::string & category () const
 returns the name of the category to which this plugin factory belongs
R * create (const std::string &iName) const
void registerPMaker (PMakerBase *iPMaker, const std::string &iName)
R * tryToCreate (const std::string &iName) const
 like above but returns 0 if iName is unknown

Static Public Member Functions

static PluginFactory< R *(void)> * get ()

Private Member Functions

const PluginFactoryoperator= (const PluginFactory &)
 PluginFactory ()
 PluginFactory (const PluginFactory &)

Friends

class DummyFriend

Detailed Description

template<class R>
class edmplugin::PluginFactory< R *(void)>

Definition at line 35 of file PluginFactory.h.


Constructor & Destructor Documentation

template<class R >
edmplugin::PluginFactory< R *(void)>::PluginFactory ( ) [inline, private]

Definition at line 77 of file PluginFactory.h.

template<class R >
edmplugin::PluginFactory< R *(void)>::PluginFactory ( const PluginFactory< R *(void)> &  ) [private]

Member Function Documentation

template<class R >
virtual const std::string& edmplugin::PluginFactory< R *(void)>::category ( ) const [virtual]

returns the name of the category to which this plugin factory belongs

Implements edmplugin::PluginFactoryBase.

template<class R >
R* edmplugin::PluginFactory< R *(void)>::create ( const std::string &  iName) const [inline]

Definition at line 56 of file PluginFactory.h.

References SurfaceDeformationFactory::create(), and edmplugin::PluginFactoryBase::findPMaker().

                                              {
        return reinterpret_cast<PMakerBase*>(PluginFactoryBase::findPMaker(iName)->second.front().first)->create();
      }
template<class R >
static PluginFactory<R*(void)>* edmplugin::PluginFactory< R *(void)>::get ( ) [static]
template<class R >
const PluginFactory& edmplugin::PluginFactory< R *(void)>::operator= ( const PluginFactory< R *(void)> &  ) [private]
template<class R >
void edmplugin::PluginFactory< R *(void)>::registerPMaker ( PMakerBase *  iPMaker,
const std::string &  iName 
) [inline]

Definition at line 72 of file PluginFactory.h.

References edmplugin::PluginFactoryBase::registerPMaker().

                                                                       {
        PluginFactoryBase::registerPMaker(iPMaker, iName);
      }
template<class R >
R* edmplugin::PluginFactory< R *(void)>::tryToCreate ( const std::string &  iName) const [inline]

like above but returns 0 if iName is unknown

Definition at line 61 of file PluginFactory.h.

References SurfaceDeformationFactory::create(), and edmplugin::PluginFactoryBase::tryToFindPMaker().

                                                   {
        typename Plugins::const_iterator itFound = PluginFactoryBase::tryToFindPMaker(iName);
        if(itFound ==m_plugins.end() ) {
          return 0;
        }
        return reinterpret_cast<PMakerBase*>(itFound->second.front().first)->create();
      }

Friends And Related Function Documentation

template<class R >
friend class DummyFriend [friend]

Definition at line 37 of file PluginFactory.h.