// the declaration once you provided the definition of the method...
#include <string>
+#include <iostream>
#include <stddef.h> // For size_t
#include <glib.h>
#include <stdio.h>
+
// The requirement for the hash table (or map) that we shall use:
// 1/ First, next, last (iterators)
// 2/ should be sortable (i.e. sorted by TagKey). This condition
// 3/ Make sure we can setup some default size value, which should be
// around 4500 entries which is the average dictionary size (said JPR)
#include <map>
-
-
+using namespace std;
+#define GDCM_EXPORT __declspec( dllexport )
// Tag based hash tables.
// We shall use as keys the strings (as the C++ type) obtained by
// concatenating the group value and the element value (both of type
// gdcmDictEntry::TranslateToKey for this conversion function.
typedef string TagKey;
-class gdcmDictEntry {
+class GDCM_EXPORT gdcmDictEntry {
private:
guint16 group; // e.g. 0x0010
guint16 element; // e.g. 0x0010
public:
//CLEANME gdcmDictEntry();
gdcmDictEntry(guint16 group, guint16 element,
- string vr, string fourth, string vr);
+ string vr, string fourth, string name);
static TagKey TranslateToKey(guint16 group, guint16 element);
guint16 GetGroup(void) { return group;};
guint16 GetElement(void){return element;};
// entries. There should be a single public dictionary (THE dictionary of
// the actual DICOM v3) but as many shadow dictionaries as imagers
// combined with all software versions...
-class gdcmDict {
+class GDCM_EXPORT gdcmDict {
string name;
string filename;
TagHT entries;
// * having many in memory representations of the same dictionary.
typedef string DictKey;
typedef map<DictKey, gdcmDict*> DictSetHT;
-class gdcmDictSet {
+class GDCM_EXPORT gdcmDictSet {
private:
string DictPath; // Directory path to dictionaries
DictSetHT dicts;
// The dicom header of a Dicom file contains a set of such ELement VALUES
// (when successfuly parsed against a given Dicom dictionary)
-class ElValue {
+class GDCM_EXPORT ElValue {
private:
gdcmDictEntry *entry;
guint32 LgrElem;
typedef map<TagKey, ElValue*> TagElValueHT;
typedef map<string, ElValue*> TagElValueNameHT;
// Container for a set of succefully parsed ElValues.
-class ElValSet {
+class GDCM_EXPORT ElValSet {
// We need both accesses with a TagKey and the Dicentry.Name
TagElValueHT tagHt;
TagElValueNameHT NameHt;
// Notes:
// * the gdcmHeader::Set*Tag* family members cannot be defined as protected
// (Swig limitations for as Has_a dependency between gdcmFile and gdcmHeader)
-class gdcmHeader {
+class GDCM_EXPORT gdcmHeader {
//FIXME sw should be qn EndianType !!!
//enum EndianType {
//LittleEndian,
// TODO Swig string GetPubElValRepByName(string TagName);
// TODO Swig string GetPubElValRepByNumber(guint16 group, guint16 element);
TagElValueHT & GetPubElVal(void) { return PubElVals.GetTagHt(); };
- void PrintPubElVal(ostream & os = std::cout);
+ void PrintPubElVal(ostream & os = cout);
void PrintPubDict(ostream &);
// Same thing with the shadow :
////// QUESTION: this looks still like an open question wether the
////// relationship between a gdcmFile and gdcmHeader is of
////// type IS_A or HAS_A !
-class gdcmFile: gdcmHeader
+class GDCM_EXPORT gdcmFile: gdcmHeader
{
private:
void* Data;
#include <ctype.h>
#include "gdcmUtil.h"
-gdcmDebug::gdcmDebug(int level = 0) {
+gdcmDebug::gdcmDebug(int level) {
DebugLevel = level;
}
-void gdcmDebug::Verbose(int Level, const char * Msg1, const char * Msg2 = "") {
+void gdcmDebug::Verbose(int Level, const char * Msg1, const char * Msg2) {
if (Level > DebugLevel)
return ;
cerr << Msg1 << ' ' << Msg2 << '\n';
}
void gdcmDebug::Assert(int Level, bool Test,
- const char * Msg1, const char * Msg2 = "") {
+ const char * Msg1, const char * Msg2) {
if (Level > DebugLevel)
return ;
if (!Test)
cerr << Msg1 << ' ' << Msg2 << '\n';
}
-void gdcmDebug::Error( bool Test, const char * Msg1, const char * Msg2 = "") {
+void gdcmDebug::Error( bool Test, const char * Msg1, const char * Msg2) {
if (!Test)
return;
std::cerr << Msg1 << ' ' << Msg2 << '\n';
- std::exit(1);
+ exit(1);
}
-void gdcmDebug::Error(const char* Msg1, const char* Msg2 ="",
- const char* Msg3 ="") {
+void gdcmDebug::Error(const char* Msg1, const char* Msg2,
+ const char* Msg3) {
std::cerr << Msg1 << ' ' << Msg2 << ' ' << Msg3 << '\n';
- std::exit(1);
+ exit(1);
}
gdcmDebug dbg;