CMS 3D CMS Logo

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

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

#include <PluginFactory.h>

Inheritance diagram for edmplugin::PluginFactory< R *(Arg)>:
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, Arg iArg) const
void registerPMaker (PMakerBase *iPMaker, const std::string &iName)
R * tryToCreate (const std::string &iName, Arg iArg) const
 like above but returns 0 if iName is unknown

Static Public Member Functions

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

Private Member Functions

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

Friends

class DummyFriend

Detailed Description

template<class R, class Arg>
class edmplugin::PluginFactory< R *(Arg)>

Definition at line 87 of file PluginFactory.h.


Constructor & Destructor Documentation

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

Definition at line 128 of file PluginFactory.h.

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

Member Function Documentation

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

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

Implements edmplugin::PluginFactoryBase.

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

Definition at line 108 of file PluginFactory.h.

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

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

Definition at line 123 of file PluginFactory.h.

References edmplugin::PluginFactoryBase::registerPMaker().

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

like above but returns 0 if iName is unknown

Definition at line 112 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(iArg);
  }

Friends And Related Function Documentation

template<class R , class Arg >
friend class DummyFriend [friend]

Definition at line 89 of file PluginFactory.h.