MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00004 00009 //---------------------------------------------------------------------------------- 00010 #ifndef CLASS_DCMTREE_DICT 00011 #define CLASS_DCMTREE_DICT 00012 00013 #include "DCMTree_Lib.h" 00014 #include "DCMTree_TagInfo.h" 00015 #include "DCMTree_Defines.h" 00016 00017 #include <string> 00018 00019 #ifdef _MSC_VER 00020 #pragma warning (push) 00021 #pragma warning (disable : 4251) 00022 #endif 00023 00041 namespace DCMTree_Utils 00042 { 00043 class LoadLibraryDelegate; 00044 } 00045 00046 namespace DCMTree 00047 { 00048 class Dict; 00049 typedef boost::shared_ptr<Dict> DictPtr; 00050 typedef boost::shared_ptr<const Dict> Const_DictPtr; 00051 00052 class DCMTREE_EXPORT Dict 00053 { 00054 public: 00055 00059 static Const_DictPtr singleton(DCMTree_Utils::LoadLibraryDelegate* delegate = NULL); 00060 00062 virtual ~Dict(); 00063 00068 virtual void postInitialize() const; 00069 00074 virtual std::string transferSyntaxUID (TransferSyntax transfersyntax) const = 0; 00075 00080 virtual Vr vr(const TagId &tagid) const; 00081 00086 virtual TagValueMultiplicity multiplicity (const TagId &tagid) const; 00087 00092 virtual std::string name (const TagId &tagid) const = 0; 00093 00098 virtual TagId tagId(const std::string &name) const; 00099 00105 virtual TagInfo info(const TagId &tagid) const = 0; 00106 00112 virtual TagInfo info(const std::string &name) const = 0; 00113 00118 virtual bool hasInfoForTagId(const TagId &tagId) const = 0; 00119 00124 virtual bool hasInfoForTagName(const std::string &tagName) const = 0; 00125 00130 inline bool isTagIdKnown (const TagId &tagIdParam) const { return hasInfoForTagId(tagIdParam); } 00131 inline bool isTagNameKnown(const std::string &tagName) const { return hasInfoForTagName(tagName); } 00133 00134 protected: 00136 static void setSingleton(Const_DictPtr singleton); 00137 00138 private: 00139 static Const_DictPtr _singleton; 00140 }; 00141 } 00142 00143 #ifdef _MSC_VER 00144 #pragma warning (pop) 00145 #endif 00146 00147 #endif 00148