MeVisLabToolboxReference
MeVis/Foundation/Sources/DicomTree/MLDicomTree/DCMTree_Reader.h
Go to the documentation of this file.
00001 //----------------------------------------------------------------------------------
00002 // **InsertLicense** code
00003 //----------------------------------------------------------------------------------
00005 
00010 // implementations of this class have to  convert from the specific character set to UTF8
00011 //----------------------------------------------------------------------------------
00012 #ifndef CLASS_DCMTREE_READER
00013 #define CLASS_DCMTREE_READER
00014 
00015 #include "DCMTree_Lib.h"
00016 #include "DCMTree_Defines.h"
00017 #include "DCMTree_TagId.h"
00018 #include "DCMTree_IOParameter.h"
00019 
00020 #ifdef _MSC_VER
00021   #pragma warning (push)
00022   #pragma warning (disable : 4251)
00023 #endif
00024 
00044 namespace DCMTree
00045 {
00046   class Reader;
00047   typedef boost::shared_ptr<Reader> ReaderPtr;
00048   typedef boost::shared_ptr<const Reader> Const_ReaderPtr;
00049 
00050   class DCMTREE_EXPORT Reader
00051   {
00052   public:
00057     static ReaderPtr create(const Const_DictPtr &dictArg);
00058 
00060     virtual ~Reader();
00061 
00066     virtual MessagePtr read (const Const_IOParameterPtr &parameter)=0;
00067 
00071     Const_DictPtr dict() const;
00072 
00073   protected:
00080     static ReaderPtr create(const Const_ReaderPtr &prototype, const Const_DictPtr &dictArg);
00081 
00083     static Const_ReaderPtr prototype();
00084 
00086     static void setPrototype(Const_ReaderPtr prototype);
00087 
00092     virtual ReaderPtr createConcrete(const Const_DictPtr &dictArg) const = 0;
00093 
00095     Reader (Const_DictPtr dictArg);
00096 
00098     Reader ();
00099 
00100   private:
00102     static Const_ReaderPtr _prototype;
00103 
00104     Const_DictPtr _dict;
00105   };
00106 }
00107 
00108 #ifdef _MSC_VER
00109   #pragma warning (pop)
00110 #endif
00111 
00112 #endif
00113 
00114