123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /* -----------------------------------------------------------------------------
- * dclassgen.swg
- *
- * Typemaps containing D code used when generating D proxy classes.
- * ----------------------------------------------------------------------------- */
- %typemap(dbase) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(dclassmodifiers) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) "class"
- %typemap(dcode) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(dimports) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(dinterfaces) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(dinterfaces_derived) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- // See <denums.swg>.
- %typemap(dclassmodifiers) enum SWIGTYPE "enum"
- %typemap(dcode) enum SWIGTYPE ""
- /*
- * Proxy classes.
- */
- %typemap(dconstructor, excode=SWIGEXCODE,directorconnect="\n swigDirectorConnect();") SWIGTYPE {
- this($imcall, true);$excode$directorconnect
- }
- %typemap(ddestructor) SWIGTYPE %{
- ~this() {
- dispose();
- }
- %}
- // We do not use »override« attribute for generated dispose() methods to stay
- // somewhat compatible to Phobos and older Tango versions where Object.dispose()
- // does not exist.
- %typemap(ddispose, methodname="dispose", methodmodifiers="public") SWIGTYPE {
- synchronized(this) {
- if (swigCPtr !is null) {
- if (swigCMemOwn) {
- swigCMemOwn = false;
- $imcall;
- }
- swigCPtr = null;
- }
- }
- }
- %typemap(ddispose_derived, methodname="dispose", methodmodifiers="public") SWIGTYPE {
- synchronized(this) {
- if (swigCPtr !is null) {
- if (swigCMemOwn) {
- swigCMemOwn = false;
- $imcall;
- }
- swigCPtr = null;
- super.dispose();
- }
- }
- }
- // Unfortunately, the »package« visibility attribute does not work in D when the
- // module in question is in the root package (happens if no -package is specified
- // at the SWIG command line), so we are stuck with public visibility for
- // swigGetCPtr().
- %typemap(dbody) SWIGTYPE %{
- private void* swigCPtr;
- protected bool swigCMemOwn;
- public this(void* cObject, bool ownCObject) {
- swigCPtr = cObject;
- swigCMemOwn = ownCObject;
- }
- public static void* swigGetCPtr(typeof(this) obj) {
- return (obj is null) ? null : obj.swigCPtr;
- }
- mixin $imdmodule.SwigOperatorDefinitions;
- %}
- %typemap(dbody_derived) SWIGTYPE %{
- private void* swigCPtr;
- public this(void* cObject, bool ownCObject) {
- super($imdmodule.$dclazznameUpcast(cObject), ownCObject);
- swigCPtr = cObject;
- }
- public static void* swigGetCPtr(typeof(this) obj) {
- return (obj is null) ? null : obj.swigCPtr;
- }
- mixin $imdmodule.SwigOperatorDefinitions;
- %}
- /*
- * Type wrapper classes.
- */
- %typemap(dbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [] %{
- private void* swigCPtr;
- public this(void* cObject, bool futureUse) {
- swigCPtr = cObject;
- }
- protected this() {
- swigCPtr = null;
- }
- public static void* swigGetCPtr(typeof(this) obj) {
- return (obj is null) ? null : obj.swigCPtr;
- }
- mixin $imdmodule.SwigOperatorDefinitions;
- %}
- /*
- * Member function pointer wrapper classes (see <dmemberfunctionpointers.swg>).
- */
- %typemap(dbody) SWIGTYPE (CLASS::*) %{
- private char* swigCPtr;
- public this(char* cMemberPtr, bool futureUse) {
- swigCPtr = cMemberPtr;
- }
- protected this() {
- swigCPtr = null;
- }
- package static char* swigGetCMemberPtr(typeof(this) obj) {
- return (obj is null) ? null : obj.swigCPtr;
- }
- mixin $imdmodule.SwigOperatorDefinitions;
- %}
|