]> Creatis software - clitk.git/blob - common/clitkXdrImageIOFactory.h
XVI IO
[clitk.git] / common / clitkXdrImageIOFactory.h
1 #ifndef CLITKXDRIMAGEIOFACTORY_H
2 #define CLITKXDRIMAGEIOFACTORY_H
3
4 /**
5  * @file   clitkXdrImageIOFactory.h
6  * @author Simon Rit <simon.rit@gmail.com>
7  * @date   Sun Jun  1 22:09:56 2008
8  *
9  * @brief
10  *
11  *
12  */
13
14 // clitk include
15 #include "clitkXdrImageIO.h"
16
17 // itk include
18 #include "itkImageIOBase.h"
19 #include "itkObjectFactoryBase.h"
20 #include "itkVersion.h"
21
22 namespace clitk {
23
24 //====================================================================
25 // Factory for reading XDR Image file format
26 class XdrImageIOFactory: public itk::ObjectFactoryBase
27 {
28 public:
29     /** Standard class typedefs. */
30     typedef XdrImageIOFactory              Self;
31     typedef itk::ObjectFactoryBase         Superclass;
32     typedef itk::SmartPointer<Self>        Pointer;
33     typedef itk::SmartPointer<const Self>  ConstPointer;
34
35     /** Class methods used to interface with the registered factories. */
36     const char* GetITKSourceVersion(void) const {
37         return ITK_SOURCE_VERSION;
38     }
39
40     const char* GetDescription(void) const {
41         return "Xdr ImageIO Factory, allows the loading of Xdr images into insight";
42     }
43
44     /** Method for class instantiation. */
45     itkFactorylessNewMacro(Self);
46
47     /** Run-time type information (and related methods). */
48     itkTypeMacro(XdrImageIOFactory, ObjectFactoryBase);
49
50     /** Register one factory of this type  */
51     static void RegisterOneFactory(void) {
52         ObjectFactoryBase::RegisterFactory( Self::New() );
53     }
54
55 protected:
56     XdrImageIOFactory();
57     ~XdrImageIOFactory() {};
58     typedef XdrImageIOFactory myProductType;
59     const myProductType* m_MyProduct;
60
61 private:
62     XdrImageIOFactory(const Self&); //purposely not implemented
63     void operator=(const Self&); //purposely not implemented
64 };
65
66 } // end namespace
67
68 #endif /* end #define CLITKXDRIMAGEIOFACTORY_H */
69