freControllerFactoryBase.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   F.R.E.E. - flexible registration evaluation engine
00004   Version:   v.0.7.2
00005   Date:      $Date: 2006/09/01 12:00:00 $
00006   Module:    $RCSfile: freControllerFactoryBase.h,v $
00007   Language:  C++
00008 
00009 
00010 
00011   Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics,
00012   Institute for Medical Biometry and Informatics, University of Heidelberg,
00013   Germany). All rights reserved.
00014   See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm
00015   for details.
00016 
00017      This software is distributed WITHOUT ANY WARRANTY; without even 
00018      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00019      PURPOSE.  See the above copyright notices for more information.
00020 
00021 =========================================================================*/
00022 #ifndef __freControllerCentral_h
00023 #define __freControllerCentral_h
00024 
00025 #include "freElementals.h"
00026 #include "freEvents.h"
00027 #include "freSetup.h"
00028 #include "freControllerEvents.h"
00029 #include "freControllerBase.h"
00030 
00031 #include "itkMutexLock.h"
00032 
00033 namespace FREE
00034 {
00035 
00052 class ControllerFactoryBase
00053 {
00054 public:  
00055   typedef std::map<std::string, ControllerFactoryBase*> FactoryListType;
00056   
00057   typedef std::map<std::string, GenericComponentController*> ControllerFactoryListType;
00058 
00061   virtual GenericComponentController* GetController() const;
00062   virtual const std::string& GetControllerID() const;
00063 
00064   static ControllerFactoryBase* GetFactory(const std::string& controllerID);
00065   static GenericComponentController* GetController(const std::string& controllerID);
00066 
00067 protected:
00068 
00069   ControllerFactoryBase();
00070   virtual ~ControllerFactoryBase();
00071 
00072   static FactoryListType m_FactoryList;
00073 
00074   static itk::MutexLock::Pointer m_CallbackMutex;
00075   static itk::MutexLock::Pointer m_ProgressMutex;
00076 
00079   static itk::MutexLock* m_GlobalCallbackMutex;
00082   static itk::MutexLock* m_GlobalProgressMutex;
00083 
00086   static bool m_bControllersAreExternal;
00087 };
00088 
00089 } //end of namespace free;
00090 
00091 #endif

Generated at Sat Oct 13 15:39:55 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000