From 279914232cd13cf5f33fd874b75e40555592e23d Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Wed, 3 May 2006 20:55:55 +0000 Subject: [PATCH] add some director tests git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9071 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Examples/test-suite/apply_strings.i | 30 ++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/SWIG/Examples/test-suite/apply_strings.i b/SWIG/Examples/test-suite/apply_strings.i index 8c80344d0..02f767a24 100644 --- a/SWIG/Examples/test-suite/apply_strings.i +++ b/SWIG/Examples/test-suite/apply_strings.i @@ -1,22 +1,48 @@ /* Test %apply for char *, signed char *, unsigned char * */ -%module apply_strings +%module(directors="1") apply_strings + +%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) DirectorTest; %apply char * {UCharPtr}; %apply char * {SCharPtr}; +%apply const char * {CUCharPtr}; +%apply const char * {CSCharPtr}; %inline %{ typedef unsigned char* UCharPtr; typedef signed char* SCharPtr; + typedef const unsigned char* CUCharPtr; + typedef const signed char* CSCharPtr; UCharPtr UCharFunction(UCharPtr str) { return str; } SCharPtr SCharFunction(SCharPtr str) { return str; } + CUCharPtr CUCharFunction(CUCharPtr str) { return str; } + CSCharPtr CSCharFunction(CSCharPtr str) { return str; } %} +%typemap(freearg) SWIGTYPE * "" %apply SWIGTYPE* {CharPtr}; %inline %{ typedef char* CharPtr; + typedef const char* CCharPtr; - CharPtr CharFunction(CharPtr buf) { return buf; } + CharPtr CharFunction(CharPtr buffer) { return buffer; } + CCharPtr CCharFunction(CCharPtr buffer) { return buffer; } +%} + +// Director test +%feature("director"); + +%inline %{ + struct DirectorTest { + virtual UCharPtr UCharFunction(UCharPtr str) { return str; } + virtual SCharPtr SCharFunction(SCharPtr str) { return str; } + virtual CUCharPtr CUCharFunction(CUCharPtr str) { return str; } + virtual CSCharPtr CSCharFunction(CSCharPtr str) { return str; } + virtual CharPtr CharFunction(CharPtr buffer) { return buffer; } + virtual CCharPtr CCharFunction(CCharPtr buffer) { return buffer; } + virtual ~DirectorTest() {} + }; %}