]> Creatis software - gdcm.git/blobdiff - src/gdcmUtil.cxx
Add protected method : gdcmElValue * GetElValueByNumber(guint16 group, guint16...
[gdcm.git] / src / gdcmUtil.cxx
index 78bcff738034e44448562b9ef22a2a1a154849bb..207b66f13351b1d435182b411c09947c9838565c 100644 (file)
@@ -1,6 +1,11 @@
+// gdcmUtil.cxx
+
 #include <ctype.h>   // For isspace
 #include "gdcmUtil.h"
 
+// Library globals.
+gdcmDebug dbg;
+
 gdcmDebug::gdcmDebug(int level) {
        DebugLevel = level;
 }
@@ -41,9 +46,33 @@ void gdcmDebug::Exit(int a) {
 #endif
 }
 
-gdcmDebug dbg;
+///////////////////////////////////////////////////////////////////////////
+gdcmVR      * gdcmGlobal::VR    = (gdcmVR*)0;
+gdcmDictSet * gdcmGlobal::Dicts = (gdcmDictSet*)0;
+gdcmGlobal gdcmGlob;
 
-// Because is not yet available in g++2.06
+gdcmGlobal::gdcmGlobal(void) {
+   if (VR || Dicts)
+      dbg.Verbose(0, "gdcmGlobal::gdcmGlobal: VR or Dicts allready allocated");
+   VR = new gdcmVR();
+   Dicts = new gdcmDictSet();
+}
+
+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)) {
@@ -55,3 +84,14 @@ istream& eatwhite(istream& is) {
        return is;
 }
 
+void Tokenize (const string& str,
+               vector<string>& 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);
+   }
+}