MeVisLabToolboxReference
|
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 ¶meter, 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