template <TYPE> class dtkCorePluginFactory : public QObject
{

%TypeHeaderCode
#include <dtkCore/dtkCorePluginFactory.h>
%End

public:
     dtkCorePluginFactory();
    ~dtkCorePluginFactory();

// https://www.riverbankcomputing.com/pipermail/pyqt/2009-June/023375.html

public:
    //    typedef TYPE *(*creator) ();

public:
    void recordPlugin(const QString& key, dtkCorePluginBase *plugin, bool force = false);

public:
    TYPE *create(const QString& key) const /Factory/ ;

public:
    QStringList keys() const;

};
