diff --git a/Modules/Segmentation/Controllers/mitkSegmentationModuleActivator.cpp b/Modules/Segmentation/Controllers/mitkSegmentationModuleActivator.cpp index 60438abf1c..79edbe332b 100644 --- a/Modules/Segmentation/Controllers/mitkSegmentationModuleActivator.cpp +++ b/Modules/Segmentation/Controllers/mitkSegmentationModuleActivator.cpp @@ -1,46 +1,49 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include #include #include #include #include "mitkToolManagerProvider.h" namespace mitk { + /** + \brief Registers services for segmentation module. + */ class SegmentationModuleActivator : public mitk::ModuleActivator { public: void Load(mitk::ModuleContext* context) { /*register ToolManager provider service*/ m_ToolManagerProvider = mitk::ToolManagerProvider::New(); context->RegisterService(m_ToolManagerProvider); } void Unload(ModuleContext*) { } private: mitk::ToolManagerProvider::Pointer m_ToolManagerProvider; }; } US_EXPORT_MODULE_ACTIVATOR(Segmentation, mitk::SegmentationModuleActivator) diff --git a/Modules/Segmentation/Controllers/mitkToolManagerProvider.h b/Modules/Segmentation/Controllers/mitkToolManagerProvider.h index 612d2d6696..688f1ee927 100644 --- a/Modules/Segmentation/Controllers/mitkToolManagerProvider.h +++ b/Modules/Segmentation/Controllers/mitkToolManagerProvider.h @@ -1,78 +1,81 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef MITK_TOOLMANAGERPROVIDER_H #define MITK_TOOLMANAGERPROVIDER_H #include "SegmentationExports.h" #include #include #include "mitkToolManager.h" #include #include namespace mitk { class SegmentationModuleActivator; + /** \brief Micro Service Singleton to get an instance of mitk::ToolManager \sa ToolManager - Implemented as a singleton to have implicitely only one instance of ToolManager. + Implemented as a singleton to have implicitly only one instance of ToolManager. Use this service to make sure your Tools are managed by the object. \note Can only be instantiated by SegmentationModuleActivator. The common way to get the ToolManager is by mitk::ToolManager* toolManager = mitk::ToolManagerProvider::GetInstance()->GetToolManager(); */ class Segmentation_EXPORT ToolManagerProvider : public itk::LightObject { public: mitkClassMacro(ToolManagerProvider, itk::LightObject); - //itkNewMacro(ToolManagerProvider); - /** \brief Returns ToolManager object + /** + \brief Returns ToolManager object. \note As this service is implemented as a singleton there is always the same ToolManager instance returned. */ virtual mitk::ToolManager* GetToolManager(); - /** \brief Returns an instance of ToolManagerProvider service */ + /** + \brief Returns an instance of ToolManagerProvider service. + */ static mitk::ToolManagerProvider* GetInstance(); - //ONLY SegmentationModuleActivator is able to create instances of the service + //ONLY SegmentationModuleActivator is able to create instances of the service. friend class mitk::SegmentationModuleActivator; protected: - //mitkClassMacro(ToolManagerProvider, itk::LightObject); itkNewMacro(ToolManagerProvider); + //hide everything ToolManagerProvider(); virtual ~ToolManagerProvider(); ToolManagerProvider(const ToolManagerProvider&); ToolManagerProvider& operator=(const ToolManagerProvider&); mitk::ToolManager::Pointer m_ToolManager; }; } US_DECLARE_SERVICE_INTERFACE(mitk::ToolManagerProvider, "org.mitk.services.ToolManagerProvider") #endif