/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: itkInterfileImageIOFactory.h,v $ Language: C++ Date: $Date: 2006/08/10 17:38:46 $ Version: $Revision: 1.1.1.1 $ Copyright (c) Insight Software Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef __itkInterfileImageIOFactory_h #define __itkInterfileImageIOFactory_h #ifdef _MSC_VER #pragma warning ( disable : 4786 ) #endif #include "itkObjectFactoryBase.h" #include "itkImageIOBase.h" namespace itk { /** \class InterfileImageIOFactory * \brief Create instances of PNGImageIO objects using an object factory. */ class ITK_EXPORT InterfileImageIOFactory : public ObjectFactoryBase { public: /** Standard class typedefs. */ typedef InterfileImageIOFactory Self; typedef ObjectFactoryBase Superclass; typedef SmartPointer Pointer; typedef SmartPointer ConstPointer; /** Class methods used to interface with the registered factories. */ virtual const char* GetITKSourceVersion(void) const; virtual const char* GetDescription(void) const; /** Method for class instantiation. */ itkFactorylessNewMacro(Self); static InterfileImageIOFactory* FactoryNew() { return new InterfileImageIOFactory;} /** Run-time type information (and related methods). */ itkTypeMacro(InterfileImageIOFactory, ObjectFactoryBase); /** Register one factory of this type */ static void RegisterOneFactory(void) { InterfileImageIOFactory::Pointer interfileFactory = InterfileImageIOFactory::New(); ObjectFactoryBase::RegisterFactory(interfileFactory); } protected: InterfileImageIOFactory(); ~InterfileImageIOFactory(); private: InterfileImageIOFactory(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented }; extern "C" #ifdef _WIN32 __declspec( dllexport ) #endif itk::ObjectFactoryBase* itkLoad(); } // end namespace itk #endif