X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmUtil.cxx;h=207b66f13351b1d435182b411c09947c9838565c;hb=0457e1e8fc68df6d9e2d1a0fcd0053ecee3c5ad7;hp=c6a7576e6485b7d8e92841610b75daba9df99877;hpb=1aa2bb207fb6b9ce78f35e7547dd4c770e516adb;p=gdcm.git diff --git a/src/gdcmUtil.cxx b/src/gdcmUtil.cxx index c6a7576e..207b66f1 100644 --- a/src/gdcmUtil.cxx +++ b/src/gdcmUtil.cxx @@ -1,6 +1,11 @@ -#include +// gdcmUtil.cxx + +#include // For isspace #include "gdcmUtil.h" +// Library globals. +gdcmDebug dbg; + gdcmDebug::gdcmDebug(int level) { DebugLevel = level; } @@ -23,18 +28,51 @@ void gdcmDebug::Error( bool Test, const char * Msg1, const char * Msg2) { if (!Test) return; std::cerr << Msg1 << ' ' << Msg2 << '\n'; - exit(1); + Exit(1); } void gdcmDebug::Error(const char* Msg1, const char* Msg2, const char* Msg3) { std::cerr << Msg1 << ' ' << Msg2 << ' ' << Msg3 << '\n'; - exit(1); + Exit(1); } -gdcmDebug dbg; +void gdcmDebug::Exit(int a) { +#ifdef __GNUC__ + std::exit(a); +#endif +#ifdef _MSC_VER + exit(a); // Found in #include +#endif +} + +/////////////////////////////////////////////////////////////////////////// +gdcmVR * gdcmGlobal::VR = (gdcmVR*)0; +gdcmDictSet * gdcmGlobal::Dicts = (gdcmDictSet*)0; +gdcmGlobal gdcmGlob; + +gdcmGlobal::gdcmGlobal(void) { + if (VR || Dicts) + dbg.Verbose(0, "gdcmGlobal::gdcmGlobal: VR or Dicts allready allocated"); + VR = new gdcmVR(); + Dicts = new gdcmDictSet(); +} -// Because is not yet available in g++2.06 +gdcmGlobal::~gdcmGlobal() { + delete VR; + delete Dicts; +} + +gdcmVR * gdcmGlobal::GetVR(void) { + return VR; +} + +gdcmDictSet * gdcmGlobal::GetDicts(void) { + return Dicts; +} + +/////////////////////////////////////////////////////////////////////////// +// Because is not yet available in g++2.96 istream& eatwhite(istream& is) { char c; while (is.get(c)) { @@ -46,3 +84,14 @@ istream& eatwhite(istream& is) { return is; } +void Tokenize (const string& str, + vector& tokens, + const string& delimiters) { + string::size_type lastPos = str.find_first_not_of(delimiters,0); + string::size_type pos = str.find_first_of(delimiters,lastPos); + while (string::npos != pos || string::npos != lastPos) { + tokens.push_back(str.substr(lastPos, pos - lastPos)); + lastPos = str.find_first_not_of(delimiters, pos); + pos = str.find_first_of(delimiters, lastPos); + } +}