CustusX  20.03-rc1
An IGT application
cxFileManagerServicePluginActivator.cpp
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
13 
14 #include <QtPlugin>
15 
18 #include "cxMetaImageReader.h"
19 #include "cxPNGImageReader.h"
20 #include "cxPolyDataMeshReader.h"
22 #include "cxStlMeshReader.h"
23 #include "cxNIfTIReader.h"
24 #include "cxMNIReaderWriter.h"
25 #include "cxLogger.h"
27 #include "cxViewServiceProxy.h"
28 
29 namespace cx
30 {
31 
33 {
34 }
35 
37 {
38  if(!mRegisteredFileReaderWriterServices.empty())
39  CX_LOG_ERROR() << "FileReaderWriterServices is not empty.";
40 }
41 
42 void FileManagerServicePluginActivator::start(ctkPluginContext* context)
43 {
44  FileManagerImpService *filemanager = new FileManagerImpService(context);
45  mRegisteredFileManagerService = RegisteredService::create<FileManagerImpService>(context, filemanager, FileManagerService_iid);
46 
47  PatientModelServicePtr patientModelService = PatientModelServiceProxy::create(context);
48  ViewServicePtr viewService = ViewServiceProxy::create(context);
49 
50  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<MetaImageReader>(context, new MetaImageReader(patientModelService), FileReaderWriterService_iid));
51  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<PNGImageReader>(context, new PNGImageReader(patientModelService), FileReaderWriterService_iid));
52  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<PolyDataMeshReader>(context, new PolyDataMeshReader(patientModelService), FileReaderWriterService_iid));
53  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<XMLPolyDataMeshReader>(context, new XMLPolyDataMeshReader(patientModelService), FileReaderWriterService_iid));
54  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<StlMeshReader>(context, new StlMeshReader(patientModelService), FileReaderWriterService_iid));
55  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<NIfTIReader>(context, new NIfTIReader(patientModelService), FileReaderWriterService_iid));
56  mRegisteredFileReaderWriterServices.push_back(RegisteredService::create<MNIReaderWriter>(context, new MNIReaderWriter(patientModelService, viewService), FileReaderWriterService_iid));
57 
58  mRegisteredGuiExtenderService = RegisteredService::create<ImportExportGuiExtenderService>(context, new ImportExportGuiExtenderService(context), GUIExtenderService_iid);
59 }
60 
61 void FileManagerServicePluginActivator::stop(ctkPluginContext* context)
62 {
63 
64  for(std::vector<RegisteredServicePtr>::iterator it = mRegisteredFileReaderWriterServices.begin(); it != mRegisteredFileReaderWriterServices.end(); )
65  {
66  (*it).reset();
67  it = mRegisteredFileReaderWriterServices.erase(it);
68  }
69 
70  mRegisteredGuiExtenderService.reset();
71  mRegisteredFileManagerService.reset();
72 
73  Q_UNUSED(context);
74 }
75 
76 } // cx
boost::shared_ptr< class ViewService > ViewServicePtr
Reader for NIfTI files.
Definition: cxNIfTIReader.h:24
#define FileManagerService_iid
static PatientModelServicePtr create(ctkPluginContext *pluginContext)
#define CX_LOG_ERROR
Definition: cxLogger.h:99
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
Reader for portable network graphics .png files.
#define GUIExtenderService_iid
Reader for .vtk files.
static ViewServicePtr create(ctkPluginContext *pluginContext)
Reader for STL files.
#define FileReaderWriterService_iid
Namespace for all CustusX production code.