]> Creatis software - clitk.git/blob - common/rtkImagXImageIOFactory.h
Merge branch 'master' into extentSimon
[clitk.git] / common / rtkImagXImageIOFactory.h
1 /*=========================================================================
2  *
3  *  Copyright RTK Consortium
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *         http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *=========================================================================*/
18
19 #ifndef __rtkImagXImageIOFactory_h
20 #define __rtkImagXImageIOFactory_h
21
22 #include "rtkImagXImageIO.h"
23 #include <itkImageIOBase.h>
24 #include <itkObjectFactoryBase.h>
25 #include <itkVersion.h>
26
27 namespace rtk
28 {
29
30 /** \class ImagXImageIOFactory
31  *
32  * TODO
33  *
34  */
35 class ImagXImageIOFactory : public itk::ObjectFactoryBase
36 {
37 public:
38   /** Standard class typedefs. */
39   typedef ImagXImageIOFactory           Self;
40   typedef itk::ObjectFactoryBase        Superclass;
41   typedef itk::SmartPointer<Self>       Pointer;
42   typedef itk::SmartPointer<const Self> ConstPointer;
43
44   /** Class methods used to interface with the registered factories. */
45   const char* GetITKSourceVersion(void) const {
46     return ITK_SOURCE_VERSION;
47   }
48
49   const char* GetDescription(void) const {
50     return "ImagX ImageIO Factory, allows the loading of ImagX images into insight";
51   }
52
53   /** Method for class instantiation. */
54   itkFactorylessNewMacro(Self);
55
56   /** Run-time type information (and related methods). */
57   itkTypeMacro(ImagXImageIOFactory, ObjectFactoryBase);
58
59   /** Register one factory of this type  */
60   static void RegisterOneFactory(void) {
61     ObjectFactoryBase::RegisterFactory( Self::New() );
62   }
63
64 protected:
65   ImagXImageIOFactory();
66   ~ImagXImageIOFactory() {}
67   typedef ImagXImageIOFactory myProductType;
68   const myProductType* m_MyProduct;
69 private:
70   ImagXImageIOFactory(const Self&); //purposely not implemented
71   void operator=(const Self&);      //purposely not implemented
72
73 };
74
75 } // end namespace
76
77 #endif