X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmUtil.cxx;h=ce7000bf7dfcd0ef3dddf6ad267e612435c31a17;hb=3674c3a8c16b5f3a9f28f7c38d54254b04b2f754;hp=c39885a326e3a0eb89fd2ea012c0487915a6318a;hpb=4926761e205f17089d13bcd94a2b5fccfad33404;p=gdcm.git diff --git a/src/gdcmUtil.cxx b/src/gdcmUtil.cxx index c39885a3..ce7000bf 100644 --- a/src/gdcmUtil.cxx +++ b/src/gdcmUtil.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmUtil.cxx,v $ Language: C++ - Date: $Date: 2005/02/17 10:56:20 $ - Version: $Revision: 1.146 $ + Date: $Date: 2005/06/07 13:48:35 $ + Version: $Revision: 1.153 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -34,15 +34,15 @@ #include //only included in implementation file #include //only included in implementation file -#if defined(_MSC_VER) || defined(__MINGW32__) - #include // for gethostname and gethostbyname +#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) + #include // for gethostname and gethostbyname and GetTickCount... +#ifndef __BORLANDC__ #undef GetCurrentTime +#endif #else -#ifndef __BORLANDC__ #include // for gethostname #include // for gethostbyname #endif -#endif // For GetMACAddress #ifdef _WIN32 @@ -94,6 +94,7 @@ const std::string Util::GDCM_UID = "1.2.826.0.1.3680043.2.1143"; std::string Util::RootUID = GDCM_UID; const uint16_t Util::FMIV = 0x0001; uint8_t *Util::FileMetaInformationVersion = (uint8_t *)&FMIV; +std::string Util::GDCM_MAC_ADRESS = GetMACAddress(); //------------------------------------------------------------------------- // Public @@ -331,18 +332,20 @@ unsigned int Util::GetCurrentThreadID() // FIXME the implementation is far from complete #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) return (unsigned int)GetCurrentThreadId(); -#endif +#else #ifdef __linux__ return 0; // Doesn't work on fedora, but is in the man page... //return (unsigned int)gettid(); -#endif +#else #ifdef __sun return (unsigned int)thr_self(); #else //default implementation return 0; -#endif +#endif // __sun +#endif // __linux__ +#endif // Win32 } unsigned int Util::GetCurrentProcessID() @@ -387,7 +390,7 @@ std::string Util::DicomString(const char *s, size_t l) * \brief Create a /DICOM/ string: * It should a of even length (no odd length ever) * It can contain as many (if you are reading this from your - * editor the following character is is backslash followed by zero + * editor the following character is backslash followed by zero * that needed to be escaped with an extra backslash for doxygen) \\0 * as you want. * This function is similar to DicomString(const char*), @@ -448,11 +451,12 @@ bool Util::DicomStringEqual(const std::string &s1, const char *s2) #endif //_WIN32 /// \brief gets current M.A.C adress (for internal use only) +int GetMacAddrSys ( unsigned char *addr ); int GetMacAddrSys ( unsigned char *addr ) { #ifdef _WIN32 WSADATA WinsockData; - if (WSAStartup(MAKEWORD(2, 0), &WinsockData) != 0) + if ( (WSAStartup(MAKEWORD(2, 0), &WinsockData)) != 0) { std::cerr << "This program requires Winsock 2.x!" << std::endl; return -1; @@ -577,7 +581,7 @@ int GetMacAddrSys ( unsigned char *addr ) // implementation for POSIX system -#ifdef __sun +#if defined(CMAKE_HAVE_NET_IF_ARP_H) && defined(__sun) //The POSIX version is broken anyway on Solaris, plus would require full //root power struct arpreq parpreq; @@ -786,7 +790,8 @@ std::string Util::CreateUniqueUID(const std::string &root) // A root was specified use it to forge our new UID: append += "."; - append += Util::GetMACAddress(); + //append += Util::GetMACAddress(); // to save CPU time + append += Util::GDCM_MAC_ADRESS; append += "."; append += Util::GetCurrentDateTime();