MeVisLabToolboxReference
MeVis/Foundation/Sources/DicomTree/MLDicomTree/DCMTree_Dict.h
Go to the documentation of this file.
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