#ifndef OPIE_META_FACTORY_H #define OPIE_META_FACTORY_H /** * The MetaFactory is used to keep track of all IOLayers, FileTransferLayers and ConfigWidgets * and to instantiate these implementations on demand */ #include #include #include #include "io_layer.h" #include "file_layer.h" #include "profile.h" #include "profileeditorplugins.h" class MetaFactory { public: typedef ProfileEditorPlugin* (*configWidget)(QWidget* parent, const Profile&); typedef IOLayer* (*iolayer)(const Profile& ); typedef FileTransferLayer* (*filelayer)(IOLayer*); MetaFactory(); ~MetaFactory(); void addConfigWidgetFactory( const QString&, const QString&, configWidget ); void addIOLayerFactory(const QString&, iolayer ); void addFileTransferLayer( const QString&, filelayer ); QStringList ioLayers()const; QStringList configWidgets()const; QStringList fileTransferLayers()const; IOLayer* newIOLayer( const QString&,const Profile& ); ProfileEditorPlugin *newConfigPlugin ( const QString&, QWidget*, const Profile& ); QString name( const QString& ); private: QMap m_confFact; QMap m_layerFact; QMap m_fileFact; QMap m_namemap; }; #endif