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