MeVisLabToolboxReference
MeVis/Foundation/Sources/DicomTree/MLDicomTree/DCMTree_Writer.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // **InsertLicense** code
00003 //-----------------------------------------------------------------------------
00005 
00010 //-----------------------------------------------------------------------------
00011 #ifndef CLASS_DCMTREE_WRITER
00012 #define CLASS_DCMTREE_WRITER
00013 
00014 #include "DCMTree_Defines.h"
00015 #include "DCMTree_Lib.h"
00016 #include "DCMTree_IOParameter.h"
00017 
00018 #ifdef _MSC_VER
00019   #pragma warning (push)
00020   #pragma warning (disable : 4251)
00021 #endif
00022 
00037 namespace DCMTree
00038 {
00039   class Writer;
00040   typedef boost::shared_ptr<Writer> WriterPtr;
00041   typedef boost::shared_ptr<const Writer> Const_WriterPtr;
00042 
00043   class DCMTREE_EXPORT Writer
00044   {
00045   public:
00050     static WriterPtr create(const Const_DictPtr &dictArg);
00051 
00053     virtual ~Writer();
00054 
00055     virtual void write (const Const_IOParameterPtr &parameter, MessagePtr towrite)=0;
00056 
00057   protected:
00058 
00060     static Const_WriterPtr prototype();
00061 
00063     static void setPrototype(Const_WriterPtr prototype);
00064 
00069     virtual WriterPtr createConcrete(const Const_DictPtr &dictArg) const = 0;
00070 
00071     Const_DictPtr dict() const;
00073     Writer ();
00074 
00076     Writer (Const_DictPtr dictArg);
00077 
00078   private:
00079 
00081     static Const_WriterPtr _prototype;
00082 
00083     Const_DictPtr _dict;
00084     };
00085 }
00086 
00087 #ifdef _MSC_VER
00088   #pragma warning (pop)
00089 #endif
00090 
00091 #endif
00092 
00093