00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageIOFactory_h
00018 #define __itkImageIOFactory_h
00019
00020 #include "itkObject.h"
00021 #include "itkImageIOBase.h"
00022
00023 namespace itk
00024 {
00028 class ITK_EXPORT ImageIOFactory : public Object
00029 {
00030 public:
00032 typedef ImageIOFactory Self;
00033 typedef Object Superclass;
00034 typedef SmartPointer<Self> Pointer;
00035 typedef SmartPointer<const Self> ConstPointer;
00036
00040 itkTypeMacro(ImageIOFactory, Object);
00041
00043 typedef ::itk::ImageIOBase::Pointer ImageIOBasePointer;
00044
00046 typedef enum { ReadMode, WriteMode } FileModeType;
00047
00049 static ImageIOBasePointer CreateImageIO(const char* path, FileModeType mode);
00050
00052 static void RegisterBuiltInFactories();
00053
00054 protected:
00055 ImageIOFactory();
00056 ~ImageIOFactory();
00057
00058 private:
00059 ImageIOFactory(const Self&);
00060 void operator=(const Self&);
00061
00062 };
00063
00064
00065 }
00066
00067 #endif