X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmUtil.h;h=ea5a3170136ed8247ab085abb2a1a1e2a231520d;hb=f7276083b636d98a16f347fde5916a3fca6855db;hp=110a7fadd46e23ce10ff935892e5c38449217525;hpb=45490622810d0706cb4ec538634c4a886f39737b;p=gdcm.git diff --git a/src/gdcmUtil.h b/src/gdcmUtil.h index 110a7fad..ea5a3170 100644 --- a/src/gdcmUtil.h +++ b/src/gdcmUtil.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmUtil.h,v $ Language: C++ - Date: $Date: 2004/11/09 11:21:32 $ - Version: $Revision: 1.41 $ + Date: $Date: 2005/10/23 14:51:01 $ + Version: $Revision: 1.64 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -26,8 +26,7 @@ namespace gdcm { /** - * \defgroup Globals Utility functions - * \brief Here are some utility functions, belonging to the Util class, + * \brief Here are some utility functions, belonging to the gdcm::Util class, * dealing with strings, file names... that can be called * from anywhere by whomsoever they can help. */ @@ -37,28 +36,83 @@ namespace gdcm class GDCM_EXPORT Util { public: - static std::string Format(const char* format, ...); - static void Tokenize (const std::string& str, - std::vector& tokens, - const std::string& delimiters = " "); - static int CountSubstring (const std::string& str, - const std::string& subStr); + static std::string Format(const char *format, ...); + static void Tokenize (const std::string &str, + std::vector &tokens, + const std::string &delimiters = " "); + static int CountSubstring (const std::string &str, + const std::string &subStr); - static std::string CreateCleanString(std::string const & s); - static std::string NormalizePath(std::string const & name); + static std::string CreateCleanString(std::string const &s); + static std::string CreateCleanString(uint8_t *s, int l); + static bool IsCleanString(std::string const &s); + static bool IsCleanArea(uint8_t *s, int l); + static std::string NormalizePath(std::string const &name); static std::string GetPath(std::string const &fullName); static std::string GetName(std::string const &fullName); + static std::string GetCurrentDate(); + static std::string GetCurrentTime(); + static std::string GetCurrentDateTime(); + /// Provides a simple static GetVersion() function + static std::string GetVersion() + { return GDCM_VERSION;} + static unsigned int GetCurrentThreadID(); + static unsigned int GetCurrentProcessID(); + static bool IsCurrentProcessorBigEndian(); - static std::string DicomString(const char* s, size_t l); - static std::string DicomString(const char* s); + static std::string DicomString(const char *s, size_t l); + static std::string DicomString(const char *s); + static bool DicomStringEqual(const std::string &s1, const char *s2); + static bool CompareDicomString(const std::string &s1, + const char *s2, int op); + static std::string GetMACAddress(); + + static std::string CreateUniqueUID(const std::string &root = ""); + static void SetRootUID(const std::string &root = ""); + static const std::string &GetRootUID(); + + static const uint8_t *GetFileMetaInformationVersion() + { return FileMetaInformationVersion;} + static void SetFileMetaInformationVersion( uint16_t fmiv ) + { FileMetaInformationVersion = (uint8_t *)&fmiv; } + +// ----------------- to be removed later -------------------------- +//To perform a full check of inline functions on all the platforms, +// we put here the two 'static' functions +// hifpswap and hNoifpswap in a .h +// They will be remove ASAP + + static inline void hifpswap(double *a, double *b) + { + double tmp; + tmp = *a; + *a = *b; + *b = tmp; + } + static void hNoifpswap(double *a, double *b) + { + double tmp; + tmp = *a; + *a = *b; + *b = tmp; + } +// ------------ end of functions to remove -------------------- +private: + static std::string GetIPAddress(); //Do not expose this method + + static std::string RootUID; + static const std::string GDCM_UID; + static uint8_t *FileMetaInformationVersion; + static const uint16_t FMIV; + static std::string GDCM_MAC_ADRESS; }; - template - GDCM_EXPORT std::ostream& binary_write(std::ostream& os, const T& val); - GDCM_EXPORT std::ostream& binary_write(std::ostream& os, const uint16_t& val); - GDCM_EXPORT std::ostream& binary_write(std::ostream& os, const uint32_t& val); - GDCM_EXPORT std::ostream& binary_write(std::ostream& os, const char* val); - GDCM_EXPORT std::ostream& binary_write(std::ostream& os, std::string const & val); +GDCM_EXPORT std::ostream &binary_write(std::ostream &os, const uint16_t &val); +GDCM_EXPORT std::ostream &binary_write(std::ostream &os, const uint32_t &val); +GDCM_EXPORT std::ostream &binary_write(std::ostream &os, const char *val); +GDCM_EXPORT std::ostream &binary_write(std::ostream &os, std::string const &val); +GDCM_EXPORT std::ostream &binary_write(std::ostream &os, const uint8_t *val, size_t len); +GDCM_EXPORT std::ostream &binary_write(std::ostream &os, const uint16_t *val, size_t len); } // end namespace gdcm //----------------------------------------------------------------------------- #endif