Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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:80
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