fw4spl
IComposite.hpp
1 /* ***** BEGIN LICENSE BLOCK *****
2  * FW4SPL - Copyright (C) IRCAD, 2009-2017.
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 #ifndef __FWDICOMIOFILTER_COMPOSITE_ICOMPOSITE_HPP__
8 #define __FWDICOMIOFILTER_COMPOSITE_ICOMPOSITE_HPP__
9 
10 #include "fwDicomIOFilter/config.hpp"
11 #include "fwDicomIOFilter/IFilter.hpp"
12 
13 #include <fwMedData/DicomSeries.hpp>
14 
15 namespace fwDicomIOFilter
16 {
17 namespace composite
18 {
19 
23 class FWDICOMIOFILTER_CLASS_API IComposite : public ::fwDicomIOFilter::IFilter
24 {
25 public:
27 
28  typedef std::vector< ::fwDicomIOFilter::IFilter::sptr > FilterContainerType;
29 
31  FWDICOMIOFILTER_API virtual ~IComposite();
32 
34  FWDICOMIOFILTER_API FilterType getFilterType() const override;
35 
37  FWDICOMIOFILTER_API DicomSeriesContainerType apply(
38  const ::fwMedData::DicomSeries::sptr& series, const ::fwLog::Logger::sptr& logger) const override;
39 
45  FWDICOMIOFILTER_API DicomSeriesContainerType forcedApply(
46  const ::fwMedData::DicomSeries::sptr& series, const ::fwLog::Logger::sptr& logger) const;
47 
49  FWDICOMIOFILTER_API void addChild(
50  const ::fwDicomIOFilter::IFilter::sptr& filter);
51 
53  FWDICOMIOFILTER_API void removeChild(
54  const ::fwDicomIOFilter::IFilter::sptr& filter);
55 
57  FWDICOMIOFILTER_API FilterContainerType& getChildren();
58 
59 protected:
61  FWDICOMIOFILTER_API IComposite();
62 
64  FilterContainerType m_filterContainer;
65 
66 };
67 
68 } // namespace composite
69 } // namespace fwDicomIOFilter
70 
71 #endif /* __FWDICOMIOFILTER_COMPOSITE_ICOMPOSITE_HPP__ */
#define fwCoreNonInstanciableClassDefinitionsMacro(_classinfo_)
Generate common code for Non Instanciable classes (Interfaces, Abstract classes, ...)
Base class for Dicom instance composite filter.
Definition: IComposite.hpp:23
fwDicomIOFilter contains filters used to pre-process images before reading.
FilterContainerType m_filterContainer
Filter container.
Definition: IComposite.hpp:64