1 %include <intrusive_ptr.i>
\r
3 %define SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, CONST, TYPE...)
\r
6 %naturalvar SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >;
\r
9 %feature("unref") TYPE "(void)arg1; delete smartarg1;"
\r
12 %typemap(in) CONST TYPE ($&1_type argp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{
\r
14 argp = (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0;
\r
16 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null $1_type");
\r
21 %typemap(out, fragment="SWIG_intrusive_deleter") CONST TYPE %{
\r
23 $1_ltype* resultp = new $1_ltype(($1_ltype &)$1);
\r
24 intrusive_ptr_add_ref(resultp);
\r
25 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(resultp, SWIG_intrusive_deleter< CONST TYPE >());
\r
28 %typemap(in) CONST TYPE * (SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{
\r
30 smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input;
\r
31 $1 = (TYPE *)(smartarg ? smartarg->get() : 0);
\r
33 %typemap(out, fragment="SWIG_intrusive_deleter,SWIG_null_deleter") CONST TYPE * %{
\r
34 //plain pointer(out)
\r
37 intrusive_ptr_add_ref($1);
\r
38 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1, SWIG_intrusive_deleter< CONST TYPE >());
\r
40 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
43 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0;
\r
47 %typemap(in) CONST TYPE & (SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{
\r
49 $1 = ($1_ltype)((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0);
\r
51 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null");
\r
55 %typemap(out, fragment="SWIG_intrusive_deleter,SWIG_null_deleter") CONST TYPE & %{
\r
56 //plain reference(out)
\r
59 intrusive_ptr_add_ref($1);
\r
60 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1, SWIG_intrusive_deleter< CONST TYPE >());
\r
62 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
65 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0;
\r
69 %typemap(in) CONST TYPE *& ($*1_ltype temp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{
\r
70 // plain pointer by reference
\r
71 temp = ((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0);
\r
74 %typemap(out, fragment="SWIG_intrusive_deleter,SWIG_null_deleter") CONST TYPE *& %{
\r
75 // plain pointer by reference(out)
\r
78 intrusive_ptr_add_ref(*$1);
\r
79 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1, SWIG_intrusive_deleter< CONST TYPE >());
\r
81 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
84 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_0);
\r
88 %typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > ($&1_type argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{
\r
89 // intrusive_ptr by value
\r
90 smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input;
\r
92 $1 = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true);
\r
95 %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > %{
\r
97 intrusive_ptr_add_ref(result.get());
\r
98 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(result.get(), SWIG_intrusive_deleter< CONST TYPE >());
\r
100 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
104 %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast ($&1_type smartarg) %{
\r
105 // shared_ptr by value
\r
106 smartarg = *($&1_ltype*)&$input;
\r
107 if (smartarg) $1 = *smartarg;
\r
109 %typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > ANY_TYPE_SWIGSharedPtrUpcast %{
\r
110 *($&1_ltype*)&$result = $1 ? new $1_ltype($1) : 0;
\r
113 %typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & ($*1_ltype tempnull, $*1_ltype temp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{
\r
114 // intrusive_ptr by reference
\r
116 smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input;
\r
117 temp = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true);
\r
123 %typemap(memberin) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & %{
\r
126 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * temp = new SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(*$input);
\r
130 %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & %{
\r
132 intrusive_ptr_add_ref($1->get());
\r
133 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1->get(), SWIG_intrusive_deleter< CONST TYPE >());
\r
135 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
139 %typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * ($*1_ltype tempnull, $*1_ltype temp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{
\r
140 // intrusive_ptr by pointer
\r
142 smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input;
\r
143 temp = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true);
\r
149 %typemap(memberin) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * %{
\r
151 if ($self) $1 = new SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(*$input);
\r
153 %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * %{
\r
155 intrusive_ptr_add_ref($1->get());
\r
156 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1->get(), SWIG_intrusive_deleter< CONST TYPE >());
\r
158 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
160 if ($owner) delete $1;
\r
163 %typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& (SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > temp, $*1_ltype tempp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{
\r
164 // intrusive_ptr by pointer reference
\r
165 smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input;
\r
167 temp = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true);
\r
172 %typemap(memberin) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& %{
\r
173 if ($self) $1 = *$input;
\r
175 %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& %{
\r
177 intrusive_ptr_add_ref((*$1)->get());
\r
178 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >((*$1)->get(), SWIG_intrusive_deleter< CONST TYPE >());
\r
180 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0;
\r
184 // various missing typemaps - If ever used (unlikely) ensure compilation error rather than runtime bug
\r
185 %typemap(in) CONST TYPE[], CONST TYPE[ANY], CONST TYPE (CLASS::*) %{
\r
186 #error "typemaps for $1_type not available"
\r
188 %typemap(out) CONST TYPE[], CONST TYPE[ANY], CONST TYPE (CLASS::*) %{
\r
189 #error "typemaps for $1_type not available"
\r
193 %typemap (jni) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >,
\r
194 SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >,
\r
195 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &,
\r
196 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *,
\r
197 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "jlong"
\r
198 %typemap (jtype) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >,
\r
199 SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >,
\r
200 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &,
\r
201 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *,
\r
202 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "long"
\r
203 %typemap (jstype) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >,
\r
204 SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >,
\r
205 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &,
\r
206 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *,
\r
207 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "PROXYCLASS"
\r
208 %typemap(javain) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >,
\r
209 SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >,
\r
210 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &,
\r
211 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *,
\r
212 SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "PROXYCLASS.getCPtr($javainput)"
\r
214 %typemap(javaout) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > {
\r
215 long cPtr = $jnicall;
\r
216 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
218 %typemap(javaout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > {
\r
219 long cPtr = $jnicall;
\r
220 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
222 %typemap(javaout) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & {
\r
223 long cPtr = $jnicall;
\r
224 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
226 %typemap(javaout) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * {
\r
227 long cPtr = $jnicall;
\r
228 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
230 %typemap(javaout) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& {
\r
231 long cPtr = $jnicall;
\r
232 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
236 %typemap(javaout) CONST TYPE {
\r
237 return new PROXYCLASS($jnicall, true);
\r
239 %typemap(javaout) CONST TYPE & {
\r
240 return new PROXYCLASS($jnicall, true);
\r
242 %typemap(javaout) CONST TYPE * {
\r
243 long cPtr = $jnicall;
\r
244 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
246 %typemap(javaout) CONST TYPE *& {
\r
247 long cPtr = $jnicall;
\r
248 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
251 // Base proxy classes
\r
252 %typemap(javabody) TYPE %{
\r
253 private long swigCPtr;
\r
254 private boolean swigCMemOwnBase;
\r
256 protected $javaclassname(long cPtr, boolean cMemoryOwn) {
\r
257 swigCMemOwnBase = cMemoryOwn;
\r
261 protected static long getCPtr($javaclassname obj) {
\r
262 return (obj == null) ? 0 : obj.swigCPtr;
\r
266 // Derived proxy classes
\r
267 %typemap(javabody_derived) TYPE %{
\r
268 private long swigCPtr;
\r
269 private boolean swigCMemOwnDerived;
\r
271 protected $javaclassname(long cPtr, boolean cMemoryOwn) {
\r
272 super($imclassname.$javaclassname_SWIGSharedPtrUpcast(cPtr), true);
\r
273 swigCMemOwnDerived = cMemoryOwn;
\r
277 protected static long getCPtr($javaclassname obj) {
\r
278 return (obj == null) ? 0 : obj.swigCPtr;
\r
282 %typemap(javadestruct, methodname="delete", methodmodifiers="public synchronized") TYPE {
\r
283 if(swigCPtr != 0 && swigCMemOwnBase) {
\r
284 swigCMemOwnBase = false;
\r
290 %typemap(javadestruct_derived, methodname="delete", methodmodifiers="public synchronized") TYPE {
\r
291 if(swigCPtr != 0 && swigCMemOwnDerived) {
\r
292 swigCMemOwnDerived = false;
\r
299 // CONST version needed ???? also for C#
\r
300 %typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast "long"
\r
301 %typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast "long"
\r
304 %template() SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >;
\r
305 %template() SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >;
\r
309 /////////////////////////////////////////////////////////////////////
\r
312 %include <shared_ptr.i>
\r
314 %define SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, CONST, TYPE...)
\r
317 %naturalvar SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >;
\r
320 %feature("unref") TYPE "(void)arg1; delete smartarg1;"
\r
324 %typemap(in) CONST TYPE ($&1_type argp = 0) %{
\r
325 argp = (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0;
\r
327 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null $1_type");
\r
331 %typemap(out) CONST TYPE
\r
332 %{ *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(new $1_ltype(($1_ltype &)$1)); %}
\r
335 %typemap(in) CONST TYPE * (SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{
\r
336 smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input;
\r
337 $1 = (TYPE *)(smartarg ? smartarg->get() : 0); %}
\r
338 %typemap(out, fragment="SWIG_null_deleter") CONST TYPE * %{
\r
339 *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner) : 0;
\r
343 %typemap(in) CONST TYPE & %{
\r
344 $1 = ($1_ltype)((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0);
\r
346 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null");
\r
349 %typemap(out, fragment="SWIG_null_deleter") CONST TYPE &
\r
350 %{ *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner); %}
\r
352 // plain pointer by reference
\r
353 %typemap(in) CONST TYPE *& ($*1_ltype temp = 0)
\r
354 %{ temp = ((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0);
\r
356 %typemap(out, fragment="SWIG_null_deleter") CONST TYPE *&
\r
357 %{ *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_$owner); %}
\r
359 %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast ($&1_type smartarg) %{
\r
360 // shared_ptr by value
\r
361 smartarg = *($&1_ltype*)&$input;
\r
362 if (smartarg) $1 = *smartarg;
\r
364 %typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > ANY_TYPE_SWIGSharedPtrUpcast %{
\r
365 *($&1_ltype*)&$result = $1 ? new $1_ltype($1) : 0;
\r
368 // various missing typemaps - If ever used (unlikely) ensure compilation error rather than runtime bug
\r
369 %typemap(in) CONST TYPE[], CONST TYPE[ANY], CONST TYPE (CLASS::*) %{
\r
370 #error "typemaps for $1_type not available"
\r
372 %typemap(out) CONST TYPE[], CONST TYPE[ANY], CONST TYPE (CLASS::*) %{
\r
373 #error "typemaps for $1_type not available"
\r
377 %typemap (jni) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > "jlong"
\r
378 %typemap (jtype) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > "long"
\r
379 %typemap (jstype) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > "PROXYCLASS"
\r
380 %typemap (javain) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > "PROXYCLASS.getCPtr($javainput)"
\r
381 %typemap(javaout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > {
\r
382 long cPtr = $jnicall;
\r
383 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
386 %typemap(javaout) CONST TYPE {
\r
387 return new PROXYCLASS($jnicall, true);
\r
389 %typemap(javaout) CONST TYPE & {
\r
390 return new PROXYCLASS($jnicall, true);
\r
392 %typemap(javaout) CONST TYPE * {
\r
393 long cPtr = $jnicall;
\r
394 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
396 %typemap(javaout) CONST TYPE *& {
\r
397 long cPtr = $jnicall;
\r
398 return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true);
\r
401 // Base proxy classes
\r
402 %typemap(javabody) TYPE %{
\r
403 private long swigCPtr;
\r
404 private boolean swigCMemOwnBase;
\r
406 protected $javaclassname(long cPtr, boolean cMemoryOwn) {
\r
407 swigCMemOwnBase = cMemoryOwn;
\r
411 protected static long getCPtr($javaclassname obj) {
\r
412 return (obj == null) ? 0 : obj.swigCPtr;
\r
416 // Derived proxy classes
\r
417 %typemap(javabody_derived) TYPE %{
\r
418 private long swigCPtr;
\r
419 private boolean swigCMemOwnDerived;
\r
421 protected $javaclassname(long cPtr, boolean cMemoryOwn) {
\r
422 super($imclassname.$javaclassname_SWIGSharedPtrUpcast(cPtr), true);
\r
423 swigCMemOwnDerived = cMemoryOwn;
\r
427 protected static long getCPtr($javaclassname obj) {
\r
428 return (obj == null) ? 0 : obj.swigCPtr;
\r
432 %typemap(javadestruct, methodname="delete", methodmodifiers="public synchronized") TYPE {
\r
433 if (swigCPtr != 0) {
\r
434 if (swigCMemOwnBase) {
\r
435 swigCMemOwnBase = false;
\r
442 %typemap(javadestruct_derived, methodname="delete", methodmodifiers="public synchronized") TYPE {
\r
443 if (swigCPtr != 0) {
\r
444 if (swigCMemOwnDerived) {
\r
445 swigCMemOwnDerived = false;
\r
453 // CONST version needed ???? also for C#
\r
454 %typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast "long"
\r
455 %typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast "long"
\r
458 %template() SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >;
\r