X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmCommon.h;h=516d397de615ca5b51d0ee6976976819dfe88176;hb=4378b05ce0f0ed0b89492e65bfa6d1db57fca4f7;hp=9e02d6e3067ea1603f6b453212c83a9f16a49fcb;hpb=bd16605c78885c2c2bee82d88b3e2a7bd6707713;p=gdcm.git diff --git a/src/gdcmCommon.h b/src/gdcmCommon.h index 9e02d6e3..516d397d 100644 --- a/src/gdcmCommon.h +++ b/src/gdcmCommon.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmCommon.h,v $ Language: C++ - Date: $Date: 2005/07/11 15:08:18 $ - Version: $Revision: 1.72 $ + Date: $Date: 2005/07/11 16:20:55 $ + Version: $Revision: 1.75 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -85,6 +85,13 @@ typedef unsigned int uint32_t; #endif #include +#define FASTTAGKEY 0 + +// FIXME: Should rewrite this: +#if FASTTAGKEY +#include +#include +#endif #if defined(_MSC_VER) && (_MSC_VER == 1200) /* ostream operator for std::string since VS6 does not provide it*/ #include @@ -119,7 +126,29 @@ GDCM_EXPORT extern const std::string GDCM_UNREAD; /// We'll fix the mess up -without any change in the API- as soon as the bench /// marks are fully performed. +#if FASTTAGKEY +typedef union { + uint16_t tab[2]; + uint32_t tagkey; + } TagKey; +/* ostream operator for TagKey */ +inline std::ostream& operator<<(std::ostream& _O, TagKey _val) +{ + return ( _O << std::right << std::setw(4) << std::setfill('0') << std::hex + << _val.tab[0] << "|" << std::right << std::setw(4) << + std::setfill('0') << std::hex << _val.tab[1]); +}; +inline bool operator==(TagKey _self, TagKey _val) +{ + return _self.tagkey == _val.tagkey; +}; +inline bool operator<(TagKey _self, TagKey _val) +{ + return _self.tagkey < _val.tagkey; +}; +#else typedef std::string TagKey; +#endif #if defined(_MSC_VER) && (_MSC_VER == 1200) // Doing everything within gdcm namespace to avoid polluting 3d party software inline std::ostream& operator<<(std::ostream& _O, std::string _val)