fw4spl
io/fwDicomIOFilter/include/fwDicomIOFilter/factory/new.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_FACTORY_NEW_HPP__
8 #define __FWDICOMIOFILTER_FACTORY_NEW_HPP__
9 
10 #include "fwDicomIOFilter/config.hpp"
11 #include "fwDicomIOFilter/registry/detail.hpp"
12 
13 #include <string>
14 
15 namespace fwDicomIOFilter
16 {
17 
18 class IFilter;
19 
20 namespace factory
21 {
22 
23 template<class CLASSNAME > SPTR( CLASSNAME ) New();
24 
29 class Key
30 {
31 template<typename CLASSNAME>
32 friend SPTR( CLASSNAME ) fwDicomIOFilter::factory::New();
33 
34 Key()
35 {
36 }
37 };
38 
39 FWDICOMIOFILTER_API SPTR( ::fwDicomIOFilter::IFilter ) New( const ::fwDicomIOFilter::registry::KeyType & classname );
40 
41 template<class CLASSNAME > SPTR( CLASSNAME ) New()
42 {
43  SPTR(CLASSNAME) obj = std::make_shared< CLASSNAME >( Key() );
44  return obj;
45 }
46 
47 } // namespace factory
48 
49 } // namespace fwDicomIOFilter
50 
51 #endif /* __FWDICOMIOFILTER_FACTORY_NEW_HPP__ */
52 
#define SPTR(_cls_)
fwDicomIOFilter contains filters used to pre-process images before reading.
Contains fwAtomsFilter::factory utilities.
Key class used to restrict access to Filter construction. See http://www.drdobbs.com/184402053.