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