%module gdcm
%{
-#include "gdcm.h"
+#include "gdcmCommon.h"
+#include "gdcmDictEntry.h"
+#include "gdcmDict.h"
+#include "gdcmDictSet.h"
+#include "gdcmParser.h"
+#include "gdcmHeaderEntry.h"
+#include "gdcmHeader.h"
+#include "gdcmHeaderHelper.h"
+#include "gdcmFile.h"
+#include "gdcmUtil.h"
+using namespace std;
// Utility functions on strings for removing leading and trailing spaces
void EatLeadingAndTrailingSpaces(string & s) {
typedef unsigned short guint16;
typedef unsigned int guint32;
-%typemap(out) list<string> * {
+////////////////////////////////////////////////////////////////////////////
+// Global variables get exported to cvar in Python
+%immutable;
+extern gdcmGlobal gdcmGlob;
+%mutable;
+
+////////////////////////////////////////////////////////////////////////////
+%typemap(out) std::list<std::string> * {
PyObject* NewItem = (PyObject*)0;
PyObject* NewList = PyList_New(0); // The result of this typemap
for (list<string>::iterator NewString = ($1)->begin();
$result = NewList;
}
-%typemap(out) map<string, list<string> > * {
+////////////////////////////////////////////////////////////////////////////
+// Convert a c++ hash table in a python native dictionary
+%typemap(out) std::map<std::string, std::list<std::string> > * {
PyObject* NewDict = PyDict_New(); // The result of this typemap
PyObject* NewKey = (PyObject*)0;
PyObject* NewVal = (PyObject*)0;
for (map<string, list<string> >::iterator tag = ($1)->begin();
tag != ($1)->end(); ++tag) {
- NewKey = PyString_FromString(tag->first.c_str());
+ string first = tag->first;
+ // Do not publish entries whose keys is made of spaces
+ if (first.length() == 0)
+ continue;
+ NewKey = PyString_FromString(first.c_str());
PyObject* NewList = PyList_New(0);
for (list<string>::iterator Item = tag->second.begin();
Item != tag->second.end(); ++Item) {
$result = NewDict;
}
-// Return an hash table as a python native dictionary
-%typemap(out) TagElValueHT & {
+////////////////////////////////////////////////////////////////////////////
+// Convert a c++ hash table in a python native dictionary
+%typemap(out) TagHeaderEntryHT & {
PyObject* NewDict = PyDict_New(); // The result of this typemap
string RawName; // Element name as gotten from gdcm
PyObject* NewKey = (PyObject*)0; // Associated name as python object
string RawValue; // Element value as gotten from gdcm
PyObject* NewVal = (PyObject*)0; // Associated value as python object
- for (TagElValueHT::iterator tag = $1->begin(); tag != $1->end(); ++tag) {
+ for (TagHeaderEntryHT::iterator tag = $1->begin(); tag != $1->end(); ++tag) {
// The element name shall be the key:
RawName = tag->second->GetName();
$result = NewDict;
}
-%include gdcm.h
+////////////////////////////////////////////////////////////////////////////
+// Deals with function returning a C++ string.
+%typemap(out) string {
+ $result = PyString_FromString(($1).c_str());
+}
+%typemap(out) std::string {
+ $result = PyString_FromString(($1).c_str());
+}
+
+////////////////////////////////////////////////////////////////////////////
+%include "gdcmCommon.h"
+%include "gdcmDictEntry.h"
+%include "gdcmDict.h"
+%include "gdcmDictSet.h"
+%include "gdcmParser.h"
+%include "gdcmHeaderEntry.h"
+%include "gdcmHeader.h"
+%include "gdcmHeaderHelper.h"
+%include "gdcmFile.h"
+%include "gdcmUtil.h"