qSlicerModuleFactoryManager.h

Go to the documentation of this file.
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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1