Medical Imaging Interaction Toolkit  2023.12.99-1652ac8d
Medical Imaging Interaction Toolkit
berryIServiceFactory.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 
14 #ifndef BERRYISERVICEFACTORY_H_
15 #define BERRYISERVICEFACTORY_H_
16 
18 
19 #include <QObject>
20 
21 namespace berry {
22 
23 struct IServiceLocator;
24 
25 class Object;
26 
34 
35  virtual ~IServiceFactory();
36 
57  template<class S>
58  S* Create(IServiceLocator* parentLocator, IServiceLocator* locator) const
59  {
60  return dynamic_cast<S*>(this->Create(qobject_interface_iid<S*>(), parentLocator, locator));
61  }
62 
63  virtual Object* Create(const QString& serviceInterface,
64  IServiceLocator* parentLocator, IServiceLocator* locator) const = 0;
65 };
66 
67 }
68 
69 Q_DECLARE_INTERFACE(berry::IServiceFactory, "org.blueberry.ui.IServiceFactory")
70 
71 #endif /* BERRYISERVICEFACTORY_H_ */
org_blueberry_ui_qt_Export.h
berry::IServiceLocator
Definition: berryIServiceLocator.h:43
berry::IServiceFactory
Definition: berryIServiceFactory.h:33
berry::Object
Light weight base class for most BlueBerry classes.
Definition: berryObject.h:72
berry::IServiceFactory::Create
S * Create(IServiceLocator *parentLocator, IServiceLocator *locator) const
Definition: berryIServiceFactory.h:58
BERRY_UI_QT
#define BERRY_UI_QT
Definition: org_blueberry_ui_qt_Export.h:26
berry
Definition: QmitkPropertyItemModel.h:24