%module gdcm
+#pragma SWIG nowarn=504,510
%{
#include <iostream>
#include "gdcmCommon.h"
#include "gdcmBase.h"
+#include "gdcmRefCounter.h"
+#include "gdcmTagKey.h"
+#include "gdcmVRKey.h"
#include "gdcmDict.h"
+#include "gdcmDicomEntry.h"
#include "gdcmDictEntry.h"
#include "gdcmDictSet.h"
#include "gdcmDicomDir.h"
#include "gdcmSQItem.h"
#include "gdcmUtil.h"
#include "gdcmDocEntry.h"
-#include "gdcmContentEntry.h"
-#include "gdcmValEntry.h"
-#include "gdcmBinEntry.h"
+#include "gdcmDataEntry.h"
#include "gdcmSeqEntry.h"
#include "gdcmVR.h"
#include "gdcmTS.h"
{
if(dynamic_cast<SeqEntry *>($1)) // SeqEntry *
newEntry = SWIG_NewPointerObj($1,SWIGTYPE_p_gdcm__SeqEntry,0);
- else if(dynamic_cast<BinEntry *>($1)) // BinEntry *
- newEntry = SWIG_NewPointerObj($1,SWIGTYPE_p_gdcm__BinEntry,0);
- else // ValEntry *
- newEntry = SWIG_NewPointerObj($1,SWIGTYPE_p_gdcm__ValEntry,0);
+ else if(dynamic_cast<DataEntry *>($1)) // DataEntry *
+ newEntry = SWIG_NewPointerObj($1,SWIGTYPE_p_gdcm__DataEntry,0);
+ else
+ newEntry = NULL;
}
else
{
// Note: Uses gdcmPythonVoidFunc and gdcmPythonVoidFuncArgDelete defined
// in the Swig verbatim section of this gdcm.i i.e. in the above section
// enclosed within the %{ ... %} scope operator ).
-%typemap(python, in) ( gdcm::DicomDir::Method *,
- void * = NULL,
- gdcm::DicomDir::Method * = NULL )
+%typemap(python, in) (void(*method)(void *),void *arg,void(*argDelete)(void *))
{
if($input!=Py_None)
{
%ignore gdcm::binary_write(std::ostream &,uint32_t const &);
%ignore gdcm::binary_write(std::ostream &,uint16_t const &);
-%ignore gdcm::File::File();
-%ignore gdcm::DicomDir::DicomDir();
+%ignore gdcm::VRKey::operator=(const VRKey &_val);
+%ignore gdcm::VRKey::operator=(const std::string &_val);
+%ignore gdcm::VRKey::operator=(const char *_val);
+%ignore gdcm::VRKey::operator[](const unsigned int &_id) const;
+%ignore gdcm::VRKey::operator[](const unsigned int &_id);
+
+%ignore gdcm::TagKey::operator=(const TagKey &_val);
+%ignore gdcm::TagKey::operator[](const unsigned int &_id) const;
+%ignore gdcm::TagKey::operator[](const unsigned int &_id);
+
+%ignore gdcm::DicomDir::SetStartMethod(DicomDir::Method *method,void *arg = NULL);
+%ignore gdcm::DicomDir::SetProgressMethod(DicomDir::Method *method,void *arg = NULL);
+%ignore gdcm::DicomDir::SetEndMethod(DicomDir::Method *method,void *arg = NULL);
// Ignore all placed in gdcmCommon.h
%ignore GDCM_UNKNOWN;
%ignore GDCM_BINLOADED;
%ignore GDCM_NOTLOADED;
%ignore GDCM_UNREAD;
+%ignore GDCM_NOTASCII;
+%ignore GDCM_PIXELDATA;
+%ignore GDCM_LEGACY;
+%ignore GDCM_VRUNKNOWN;
-%constant const char *UNKNOWN = "gdcm::Unknown";
-%constant const char *UNFOUND = "gdcm::Unfound";
-%constant const char *BINLOADED = "gdcm::Binary data loaded";
-%constant const char *NOTLOADED = "gdcm::NotLoaded";
-%constant const char *UNREAD = "gdcm::UnRead";
+%constant const char *UNKNOWN = "gdcm::Unknown";
+%constant const char *UNFOUND = "gdcm::Unfound";
+%constant const char *BINLOADED = "gdcm::Binary data loaded";
+%constant const char *NOTLOADED = "gdcm::NotLoaded";
+%constant const char *UNREAD = "gdcm::UnRead";
+%constant const char *GDCM_NOTASCII = "gdcm::NotAscii";
+%constant const char *GDCM_PIXELDATA = "gdcm::Pixel Data to be loaded";
+%constant const char *VRUNKNOWN = " ";
////////////////////////////////////////////////////////////////////////////
// Warning: Order matters !
%include "gdcmCommon.h"
%include "gdcmBase.h"
+%include "gdcmRefCounter.h"
+%include "gdcmTagKey.h"
+%include "gdcmVRKey.h"
+%include "gdcmDicomEntry.h"
%include "gdcmDictEntry.h"
%include "gdcmDict.h"
%include "gdcmDictSet.h"
%include "gdcmGlobal.h"
%include "gdcmDicomDir.h"
%include "gdcmDocEntry.h"
-%include "gdcmContentEntry.h"
-%include "gdcmValEntry.h"
-%include "gdcmBinEntry.h"
+%include "gdcmDataEntry.h"
%include "gdcmSeqEntry.h"
%include "gdcmVR.h"
%include "gdcmTS.h"
%include "gdcmDictGroupName.h"
-
-////////////////////////////////////////////////////////////////////////////
-// Notes on swig and this file gdcm.i:
-//
-/////////////////////////////////////
-// Note 1: swig collision of method overloading and %typemap
-// Consider the following junk.i file:
-// %module junk
-// %{
-// #include <string>
-// #include <iostream>
-// void Junk(std::string const & bozo) { std::cout << bozo << std::endl; }
-// void Junk() { std::cout << "Renamed Junk()" << std::endl; }
-// %}
-//
-// %typemap(python, in) std::string const &
-// {
-// $1 = new std::string( PyString_AsString( $input ) );
-// }
-// void Junk();
-// void Junk(std::string const & bozo);
-//
-// that we compile on linux with:
-// swig -c++ -python junk.i
-// g++ -g -I/usr/include/python2.3/ -o junk_wrap.o -c junk_wrap.cxx
-// g++ junk_wrap.o -shared -g -o _junk.so -L/usr/lib/python2.3/config \
-// -lpython2.3
-// and invoque with:
-// python -c 'from junk import *; Junk("aaa") '
-// then we get the following unexpected (for novice) python TypeError:
-// TypeError: No matching function for overloaded 'Junk'
-//
-// This happens because the swig generated code (at least for python) does
-// the following two stage process:
-// 1/ first do a dynamic dispatch ON THE NUMBER OF ARGUMENTS of the overloaded
-// Junk function (the same happens with method of course). [Note that the
-// dispatch is NOT done on the type of the arguments].
-// 2/ second apply the typemap.
-// When the first dynamic dispatch is executed, the swig generated code
-// has no knowledge of the typemap, and thus expects a pointer to a std::string
-// type i.e. an argument to Junk of the form _p_std__int<address>. But this
-// is not what python handles to Junk ! An invocation of the form 'Junk("aaa")'
-// will make Python pass a PyString to swig (and this is precisely why we
-// wrote the typemap). And this will fail....
-/////////////////////////////////////