qSlicerCLILoadableModuleFactory.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 
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

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1