]> Creatis software - clitk.git/blob - common/clitkEsrfHstImageIOFactory.h
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / common / clitkEsrfHstImageIOFactory.h
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to:
5   - University of LYON              http://www.universite-lyon.fr/
6   - Léon Bérard cancer center       http://www.centreleonberard.fr
7   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
8
9   This software is distributed WITHOUT ANY WARRANTY; without even
10   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11   PURPOSE.  See the copyright notices for more information.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18
19 #ifndef __clitkEsrfHstImageIOFactory_h
20 #define __clitkEsrfHstImageIOFactory_h
21
22 #include "clitkEsrfHstImageIO.h"
23 #include <itkImageIOBase.h>
24 #include <itkObjectFactoryBase.h>
25 #include <itkVersion.h>
26
27 namespace clitk
28 {
29
30 //====================================================================
31 // Factory for reading Esrf Hst Image file format
32 class EsrfHstImageIOFactory: public itk::ObjectFactoryBase
33 {
34 public:
35   /** Standard class typedefs. */
36   typedef EsrfHstImageIOFactory          Self;
37   typedef itk::ObjectFactoryBase         Superclass;
38   typedef itk::SmartPointer<Self>        Pointer;
39   typedef itk::SmartPointer<const Self>  ConstPointer;
40
41   /** Class methods used to interface with the registered factories. */
42   const char* GetITKSourceVersion(void) const {
43     return ITK_SOURCE_VERSION;
44   }
45
46   const char* GetDescription(void) const {
47     return "Esrf Hst ImageIO Factory, allows the loading of Esrf Hst images into insight";
48   }
49
50   /** Method for class instantiation. */
51   itkFactorylessNewMacro(Self);
52
53   /** Run-time type information (and related methods). */
54   itkTypeMacro(EsrfHstImageIOFactory, ObjectFactoryBase);
55
56   /** Register one factory of this type  */
57   static void RegisterOneFactory(void) {
58     ObjectFactoryBase::RegisterFactory( Self::New() );
59   }
60
61 protected:
62   EsrfHstImageIOFactory();
63   ~EsrfHstImageIOFactory() {};
64   typedef EsrfHstImageIOFactory myProductType;
65   const myProductType* m_MyProduct;
66
67 private:
68   EsrfHstImageIOFactory(const Self&); //purposely not implemented
69   void operator=(const Self&);        //purposely not implemented
70 };
71
72 } // end namespace
73
74 #endif
75