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
1.5.3 written by Dimitri van Heesch,
© 1997-2000