CMS 3D CMS Logo

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

edmplugin::PluginFactory< R *(Arg1, Arg2)> Class Template Reference

#include <PluginFactory.h>

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

Static Public Member Functions

static PluginFactory< R *(Arg1,
Arg2)> * 
get ()

Private Member Functions

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

Friends

class DummyFriend

Detailed Description

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

Definition at line 138 of file PluginFactory.h.


Constructor & Destructor Documentation

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

Definition at line 180 of file PluginFactory.h.

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

Member Function Documentation

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

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

Implements edmplugin::PluginFactoryBase.

template<class R , class Arg1 , class Arg2 >
R* edmplugin::PluginFactory< R *(Arg1, Arg2)>::create ( const std::string &  iName,
Arg1  iArg1,
Arg2  iArg2 
) const [inline]

Definition at line 159 of file PluginFactory.h.

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

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

Definition at line 175 of file PluginFactory.h.

References edmplugin::PluginFactoryBase::registerPMaker().

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

like above but returns 0 if iName is unknown

Definition at line 163 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(iArg1,iArg2);
  }

Friends And Related Function Documentation

template<class R , class Arg1 , class Arg2 >
friend class DummyFriend [friend]

Definition at line 140 of file PluginFactory.h.