X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmVRKey.h;h=9ba7940313e7af883ae3fed843c68a0255877438;hb=80075429b6ab9db9e885b9bb9ae1427530c7bef8;hp=f743412a2778e14a51b6587eb7ec234120c45dc8;hpb=bdc259a03a952468d01ec9b4581563548c393021;p=gdcm.git diff --git a/src/gdcmVRKey.h b/src/gdcmVRKey.h index f743412a..9ba79403 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:51:11 $ - Version: $Revision: 1.4 $ + Date: $Date: 2008/04/10 12:15:36 $ + Version: $Revision: 1.10 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -16,15 +16,17 @@ =========================================================================*/ -#ifndef GDCMVRKEY_H -#define GDCMVRKEY_H +#ifndef _GDCMVRKEY_H_ +#define _GDCMVRKEY_H_ #include "gdcmCommon.h" #include #include // important +#include // important +#include -namespace gdcm +namespace GDCM_NAME_SPACE { //----------------------------------------------------------------------------- class VRKey @@ -36,8 +38,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) { @@ -45,12 +47,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]; @@ -63,6 +67,7 @@ public : assert(_id<2); return key[_id]; } + inline char &operator[](const unsigned int &_id) { assert(_id<2); @@ -73,10 +78,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]; @@ -86,6 +93,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]; @@ -100,18 +108,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;