Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkDataStorageInspectorGenerator.cpp
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 #include "usModuleContext.h"
14 #include "usGetModuleContext.h"
15 
16 #include "mitkLogMacros.h"
18 
20 {
21  mitk::IDataStorageInspectorProvider* result = nullptr;
22 
23  std::string filter = "(" + mitk::IDataStorageInspectorProvider::PROP_INSPECTOR_ID() + "=" + id + ")";
24  std::vector<us::ServiceReference<mitk::IDataStorageInspectorProvider> > providerRegisters = us::GetModuleContext()->GetServiceReferences<mitk::IDataStorageInspectorProvider>(filter);
25 
26  if (!providerRegisters.empty())
27  {
28  if (providerRegisters.size() > 1)
29  {
30  MITK_WARN << "Multiple provider for class id'" << id << "' found. Using just one.";
31  }
32  result = us::GetModuleContext()->GetService<mitk::IDataStorageInspectorProvider>(providerRegisters.front());
33  }
34 
35  return result;
36 };
37 
39 {
40  std::vector<us::ServiceReference<mitk::IDataStorageInspectorProvider> > providerRegisters = us::GetModuleContext()->GetServiceReferences<mitk::IDataStorageInspectorProvider>();
41 
42  ProviderMapType result;
43 
44  for (auto regs : providerRegisters)
45  {
47  result.insert(std::make_pair(provider->GetInspectorID(), provider));
48  }
49 
50  return result;
51 };
52 
54 = default;
55 
57 = default;
mitk::IDataStorageInspectorProvider::InspectorIDType IDType
static mitk::IDataStorageInspectorProvider * GetProvider(const IDType &id)
void * GetService(const ServiceReferenceBase &reference)
The common interface for all DataStorage inspector providers.
#define MITK_WARN
Definition: mitkLogMacros.h:19
static std::string PROP_INSPECTOR_ID()
Service property name for the inspector ID.
std::map< IDType, mitk::IDataStorageInspectorProvider * > ProviderMapType
std::vector< ServiceReferenceU > GetServiceReferences(const std::string &clazz, const std::string &filter=std::string())
static ModuleContext * GetModuleContext()
Returns the module context of the calling module.