X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmVRKey.h;h=c192735bf6ee0ab561fbbd277cb16e1429f9b178;hb=224876ca6cbe71952f2a1d66d9853eca7745d3a0;hp=f633f00345f313bf7b85c6ed9a9128d178551d37;hpb=c25e4f968be3a994bf23a43a78e154b343b88d6f;p=gdcm.git diff --git a/src/gdcmVRKey.h b/src/gdcmVRKey.h index f633f003..c192735b 100644 --- a/src/gdcmVRKey.h +++ b/src/gdcmVRKey.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmVRKey.h,v $ Language: C++ - Date: $Date: 2005/10/19 16:49:05 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/01/02 10:48:52 $ + Version: $Revision: 1.9 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -16,16 +16,16 @@ =========================================================================*/ -#ifndef GDCMVRKEY_H -#define GDCMVRKEY_H +#ifndef _GDCMVRKEY_H_ +#define _GDCMVRKEY_H_ #include "gdcmCommon.h" #include -#include -#include // for std::ios::left, ... +#include // important +#include -namespace gdcm +namespace GDCM_NAME_SPACE { //----------------------------------------------------------------------------- class VRKey @@ -37,8 +37,8 @@ public : inline std::string str() const { return std::string(key,2); } - friend std::ostream& operator<<(std::ostream& _os, const VRKey &_val); - friend std::istream& operator>>(std::istream& _is, VRKey &_val); + friend std::ostream &operator<<(std::ostream &_os, const VRKey &_val); + friend std::istream &operator>>(std::istream &_is, VRKey &_val); inline VRKey &operator=(const VRKey &_val) { @@ -46,12 +46,14 @@ public : key[1] = _val.key[1]; return *this; } + inline VRKey &operator=(const std::string &_val) { key[0] = _val[0]; key[1] = _val[1]; return *this; } + inline VRKey &operator=(const char *_val) { key[0] = _val[0]; @@ -64,6 +66,7 @@ public : assert(_id<2); return key[_id]; } + inline char &operator[](const unsigned int &_id) { assert(_id<2); @@ -74,10 +77,12 @@ public : { return key[0] == _val.key[0] && key[1] == _val.key[1]; } + inline bool operator==(const std::string &_val) const { return key[0] == _val[0] && key[1] == _val[1]; } + inline bool operator==(const char *_val) const { return key[0] == _val[0] && key[1] == _val[1]; @@ -87,6 +92,7 @@ public : { return key[0] != _val.key[0] || key[1] != _val.key[1]; } + inline bool operator!=(const std::string &_val) const { return key[0] != _val[0] || key[1] != _val[1]; @@ -101,18 +107,35 @@ public : return key[0] < _val[0] || (key[0] == _val[0] && key[1] < _val[1]); } + inline std::string GetHexaRepresentation() + { + // We could probabelly write something much more complicated using C++ features ! + // (I really want HexaRepresentation as xx|xx, not ffffffxx|ffffffxx !) + char vr_char[6]; + char buf[5]; + sprintf(buf, "%04x",( unsigned short int)key[0]); + vr_char[0] = buf[2]; + vr_char[1] = buf[3]; + sprintf(buf, "%04x",( unsigned short int)key[1]); + vr_char[2] = '|'; + vr_char[3] = buf[2]; + vr_char[4] = buf[3]; + vr_char[5] = '\0'; + return(vr_char); + } + private : char key[2]; }; //----------------------------------------------------------------------------- -inline std::ostream& operator<<(std::ostream& _os, const VRKey &_val) +inline std::ostream &operator<<(std::ostream &_os, const VRKey &_val) { _os << _val.key[0] << _val.key[1]; return _os; } -inline std::istream& operator>>(std::istream& _is, VRKey &_val) +inline std::istream &operator>>(std::istream &_is, VRKey &_val) { _is >> _val.key[0] >> _val.key[1]; return _is;