Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
mitkToolManagerProvider.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkToolManagerProvider_h
14 #define mitkToolManagerProvider_h
15 
17 
18 #include <mitkServiceInterface.h>
19 #include <usModuleContext.h>
20 
21 #include "mitkToolManager.h"
22 #include <itkObjectFactory.h>
23 #include <mitkCommon.h>
24 
25 #include <string>
26 #include <map>
27 
28 namespace mitk
29 {
30  class SegmentationModuleActivator;
31 
44  class MITKSEGMENTATION_EXPORT ToolManagerProvider : public itk::LightObject
45  {
46  public:
48 
49  using ProviderMapType = std::map<std::string, mitk::ToolManager::Pointer>;
50 
51  // Known ToolManager contexts
52  static const char* const SEGMENTATION;
53 
60  virtual mitk::ToolManager *GetToolManager(const std::string& context = SEGMENTATION);
61 
65  ProviderMapType GetToolManagers() const;
66 
70  static mitk::ToolManagerProvider *GetInstance();
71 
72  // ONLY SegmentationModuleActivator is able to create instances of the service.
73  friend class mitk::SegmentationModuleActivator;
74 
75  protected:
76  itkFactorylessNewMacro(Self);
77  itkCloneMacro(Self);
78 
79  // hide everything
81  ~ToolManagerProvider() override;
83  ToolManagerProvider &operator=(const ToolManagerProvider &);
84 
86  };
87 }
88 
89 MITK_DECLARE_SERVICE_INTERFACE(mitk::ToolManagerProvider, "org.mitk.services.ToolManagerProvider")
90 
91 #endif
mitkServiceInterface.h
mitk::ToolManagerProvider::m_ToolManagers
ProviderMapType m_ToolManagers
Definition: mitkToolManagerProvider.h:85
mitk::ToolManagerProvider::ProviderMapType
std::map< std::string, mitk::ToolManager::Pointer > ProviderMapType
Definition: mitkToolManagerProvider.h:49
mitkClassMacroItkParent
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:45
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::ToolManager
Manages and coordinates instances of mitk::Tool.
Definition: mitkToolManager.h:78
mitk::ToolManagerProvider::SEGMENTATION
static const char *const SEGMENTATION
Definition: mitkToolManagerProvider.h:52
mitkCommon.h
MITKSEGMENTATION_EXPORT
#define MITKSEGMENTATION_EXPORT
Definition: MitkSegmentationExports.h:15
usModuleContext.h
mitk::ToolManagerProvider
Micro Service Singleton to get an instance of mitk::ToolManager.
Definition: mitkToolManagerProvider.h:44
MitkSegmentationExports.h
MITK_DECLARE_SERVICE_INTERFACE
#define MITK_DECLARE_SERVICE_INTERFACE(IFace, IId)
Definition: mitkServiceInterface.h:26
mitkToolManager.h