00001 /*=auto========================================================================= 00002 00003 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) 00004 All Rights Reserved. 00005 00006 See Doc/copyright/copyright.txt 00007 or http://www.slicer.org/copyright/copyright.txt for details. 00008 00009 Program: 3D Slicer 00010 00011 =========================================================================auto=*/ 00012 00013 #ifndef __qSlicerModuleFactoryManager_h 00014 #define __qSlicerModuleFactoryManager_h 00015 00017 #include <qCTKAbstractFactory.h> 00018 #include <qCTKPimpl.h> 00019 00021 #include <QString> 00022 00023 #include "qSlicerBaseQTCoreExport.h" 00024 00025 class qSlicerAbstractModule; 00026 00027 class qSlicerModuleFactoryManagerPrivate; 00028 00029 class Q_SLICER_BASE_QTCORE_EXPORT qSlicerModuleFactoryManager 00030 { 00031 public: 00032 typedef qCTKAbstractFactory<qSlicerAbstractModule> qSlicerAbstractModuleFactory; 00033 00034 qSlicerModuleFactoryManager(); 00035 00038 virtual ~qSlicerModuleFactoryManager(); 00039 00040 virtual void printAdditionalInfo(); 00041 00044 void registerFactory(const QString& factoryName, qSlicerAbstractModuleFactory* factory); 00045 00048 void registerAllModules(); 00049 00051 void registerModules(const QString& factoryName); 00052 00054 void instantiateAllModules(); 00055 00057 void instantiateModules(const QString& factoryName); 00058 00061 QString moduleName(const QString & title) const; 00062 00065 QString moduleTitle(const QString & name) const; 00066 00069 QStringList moduleNames() const; 00070 00073 QStringList moduleNames(const QString& factoryName) const; 00074 00077 qSlicerAbstractModule* instantiateModule(const QString& name); 00078 00081 void uninstantiateModule(const QString& name); 00082 00085 void uninstantiateAll(); 00086 00089 bool isRegistered(const QString& name)const; 00090 00091 private: 00092 QCTK_DECLARE_PRIVATE(qSlicerModuleFactoryManager); 00093 }; 00094 00095 #endif
1.6.1