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 00014 #ifndef __qSlicerCLILoadableModuleFactory_h 00015 #define __qSlicerCLILoadableModuleFactory_h 00016 00018 #include "qSlicerAbstractModule.h" 00019 #include "qSlicerBaseQTCLIExport.h" 00020 00022 #include <qCTKPimpl.h> 00023 #include <qCTKAbstractLibraryFactory.h> 00024 00025 //----------------------------------------------------------------------------- 00026 class qSlicerCLILoadableModuleFactoryItem : public qCTKFactoryLibraryItem<qSlicerAbstractModule> 00027 { 00028 public: 00029 // Convenient typedef 00030 typedef qCTKFactoryLibraryItem<qSlicerAbstractModule> Superclass; 00031 00032 explicit qSlicerCLILoadableModuleFactoryItem(const QString& itemKey, const QString& itemPath); 00033 virtual ~qSlicerCLILoadableModuleFactoryItem(){} 00034 00035 protected: 00037 typedef qSlicerCLILoadableModuleFactoryItem Self; 00038 //typedef char * (*XMLModuleDescriptionFunction)(); 00039 00040 virtual qSlicerAbstractModule* instanciator(); 00041 }; 00042 00043 //----------------------------------------------------------------------------- 00044 class qSlicerCLILoadableModuleFactoryPrivate; 00045 00046 //----------------------------------------------------------------------------- 00047 class Q_SLICER_BASE_QTCLI_EXPORT qSlicerCLILoadableModuleFactory : 00048 public qCTKAbstractLibraryFactory<qSlicerAbstractModule,qSlicerCLILoadableModuleFactoryItem> 00049 { 00050 public: 00051 00052 typedef qCTKAbstractLibraryFactory<qSlicerAbstractModule, 00053 qSlicerCLILoadableModuleFactoryItem> Superclass; 00054 qSlicerCLILoadableModuleFactory(); 00055 virtual ~qSlicerCLILoadableModuleFactory(){} 00056 00057 virtual void registerItems(); 00058 00059 private: 00060 QCTK_DECLARE_PRIVATE(qSlicerCLILoadableModuleFactory); 00061 }; 00062 00063 #endif
1.6.1