Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkPersistenceActivator.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 
14 
16 {
17 }
18 
19 void mitk::PersistenceActivator::Load(us::ModuleContext *context)
20 {
21  MITK_DEBUG << "PersistenceActivator::Load";
22 
23  mitk::IPersistenceService *persistenceService = nullptr;
25  context->GetServiceReference<mitk::IPersistenceService>();
26  if (persistenceServiceRef)
27  {
28  persistenceService =
29  dynamic_cast<mitk::IPersistenceService *>(context->GetService<mitk::IPersistenceService>(persistenceServiceRef));
30  }
31 
32  bool instanceAlreadyAdded = persistenceService != nullptr;
33  if (instanceAlreadyAdded)
34  instanceAlreadyAdded = dynamic_cast<mitk::PersistenceService *>(persistenceService) != nullptr;
35 
36  if (instanceAlreadyAdded == false)
37  {
38  // Registering PersistenceService as MicroService
40  us::ServiceProperties _PersistenceServiceProps;
41  _PersistenceServiceProps["Name"] = std::string("PersistenceService");
42 
43  m_PersistenceServiceRegistration =
44  context->RegisterService<mitk::IPersistenceService>(m_PersistenceService, _PersistenceServiceProps);
45  }
46  else
47  {
49  << "Another Persistence instance already installed. Library was loaded twice. Please check configuration!";
50  }
51 }
52 
53 void mitk::PersistenceActivator::Unload(us::ModuleContext *)
54 {
55  if (m_PersistenceService.IsNull())
56  return;
57 
58  MITK_DEBUG("PersistenceActivator") << "PersistenceActivator::Unload";
59  MITK_DEBUG("PersistenceActivator") << "m_PersistenceService GetReferenceCount "
60  << m_PersistenceService->GetReferenceCount();
61 
62  m_PersistenceServiceRegistration.Unregister();
63  m_PersistenceService->Unitialize();
64  m_PersistenceService->Delete();
65 }
66 
68 {
69 }
#define MITK_ERROR
Definition: mitkLogMacros.h:20
#define MITK_DEBUG
Definition: mitkLogMacros.h:22
void Load(us::ModuleContext *context) override
US_UNORDERED_MAP_TYPE< std::string, Any > ServiceProperties
void Unload(us::ModuleContext *context) override