fw4spl
ioVtkGdcm/include/ioVtkGdcm/SImageSeriesWriter.hpp
1 /* ***** BEGIN LICENSE BLOCK *****
2  * FW4SPL - Copyright (C) IRCAD, 2009-2018.
3  * Distributed under the terms of the GNU Lesser General Public License (LGPL) as
4  * published by the Free Software Foundation.
5  * ****** END LICENSE BLOCK ****** */
6 
7 #pragma once
8 
9 #include "ioVtkGdcm/config.hpp"
10 
11 #include <fwIO/IWriter.hpp>
12 
13 #include <boost/filesystem/path.hpp>
14 
15 #include <string>
16 
17 namespace fwMedData
18 {
19 class ImageSeries;
20 }
21 
22 namespace fwJobs
23 {
24 class IJob;
25 }
26 
27 namespace ioVtkGdcm
28 {
29 
51 class IOVTKGDCM_CLASS_API SImageSeriesWriter : public ::fwIO::IWriter
52 {
53 
54 public:
56 
57  typedef ::fwCom::Signal< void ( SPTR(::fwJobs::IJob) ) > JobCreatedSignalType;
58 
62  IOVTKGDCM_API SImageSeriesWriter() noexcept;
63 
67  IOVTKGDCM_API virtual ~SImageSeriesWriter() noexcept;
68 
70  IOVTKGDCM_API virtual void configureWithIHM() override;
71 
72 protected:
73 
75  IOVTKGDCM_API virtual void starting() override;
76 
78  IOVTKGDCM_API virtual void stopping() override;
79 
81  IOVTKGDCM_API virtual void configuring() override;
82 
84  IOVTKGDCM_API void updating() override;
85 
87  IOVTKGDCM_API ::fwIO::IOPathType getIOPathType() const override;
88 
89 private:
90 
91  void saveImageSeries( const ::boost::filesystem::path folder, CSPTR(::fwMedData::ImageSeries) series );
92 
93  SPTR(JobCreatedSignalType) m_sigJobCreated;
94 };
95 
96 } // namespace ioVtkGdcm
#define SPTR(_cls_)
#define CSPTR(_cls_)
Namespace containing medical data.
ioVtkGdcm contains services to read and write Series using vtk and gdcm libraries.
Services to write an ImageSeries in DICOM format.
#define fwCoreServiceClassDefinitionsMacro(_classinfo_)
Generate common code for services classes.
Writer service API. It manages extension points definition and extension configuration.
Definition: IWriter.hpp:33
The namespace fwIO contains the base interface for reader and writer services.
Definition: ioTypes.hpp:16
This namespace fwJobs provides jobs management.