PageRenderTime 51ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Lib/python/boost_shared_ptr.i

#
Swig | 322 lines | 291 code | 31 blank | 0 comment | 0 complexity | fa1c089a4df5762e9eb9662c95e4f6ec MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. %include <shared_ptr.i>
  2. // Set SHARED_PTR_DISOWN to $disown if required, for example
  3. // #define SHARED_PTR_DISOWN $disown
  4. #if !defined(SHARED_PTR_DISOWN)
  5. #define SHARED_PTR_DISOWN 0
  6. #endif
  7. %fragment("SWIG_null_deleter_python", "header", fragment="SWIG_null_deleter") {
  8. %#define SWIG_NO_NULL_DELETER_SWIG_BUILTIN_INIT
  9. }
  10. // Language specific macro implementing all the customisations for handling the smart pointer
  11. %define SWIG_SHARED_PTR_TYPEMAPS(CONST, TYPE...)
  12. // %naturalvar is as documented for member variables
  13. %naturalvar TYPE;
  14. %naturalvar SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >;
  15. // destructor wrapper customisation
  16. %feature("unref") TYPE
  17. //"if (debug_shared) { cout << \"deleting use_count: \" << (*smartarg1).use_count() << \" [\" << (boost::get_deleter<SWIG_null_deleter>(*smartarg1) ? std::string(\"CANNOT BE DETERMINED SAFELY\") : ( (*smartarg1).get() ? (*smartarg1)->getValue() : std::string(\"NULL PTR\") )) << \"]\" << endl << flush; }\n"
  18. "(void)arg1; delete smartarg1;"
  19. // Typemap customisations...
  20. // plain value
  21. %typemap(in) CONST TYPE (void *argp, int res = 0) {
  22. int newmem = 0;
  23. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  24. if (!SWIG_IsOK(res)) {
  25. %argument_fail(res, "$type", $symname, $argnum);
  26. }
  27. if (!argp) {
  28. %argument_nullref("$type", $symname, $argnum);
  29. } else {
  30. $1 = *(%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *)->get());
  31. if (newmem & SWIG_CAST_NEW_MEMORY) delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  32. }
  33. }
  34. %typemap(out) CONST TYPE {
  35. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(new $1_ltype(($1_ltype &)$1));
  36. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  37. }
  38. %typemap(varin) CONST TYPE {
  39. void *argp = 0;
  40. int newmem = 0;
  41. int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  42. if (!SWIG_IsOK(res)) {
  43. %variable_fail(res, "$type", "$name");
  44. }
  45. if (!argp) {
  46. %argument_nullref("$type", $symname, $argnum);
  47. } else {
  48. $1 = *(%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *)->get());
  49. if (newmem & SWIG_CAST_NEW_MEMORY) delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  50. }
  51. }
  52. %typemap(varout) CONST TYPE {
  53. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(new $1_ltype(($1_ltype &)$1));
  54. %set_varoutput(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  55. }
  56. // plain pointer
  57. // Note: $disown not implemented by default as it will lead to a memory leak of the shared_ptr instance
  58. %typemap(in) CONST TYPE * (void *argp = 0, int res = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) {
  59. int newmem = 0;
  60. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SHARED_PTR_DISOWN | %convertptr_flags, &newmem);
  61. if (!SWIG_IsOK(res)) {
  62. %argument_fail(res, "$type", $symname, $argnum);
  63. }
  64. if (newmem & SWIG_CAST_NEW_MEMORY) {
  65. tempshared = *%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  66. delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  67. $1 = %const_cast(tempshared.get(), $1_ltype);
  68. } else {
  69. smartarg = %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  70. $1 = %const_cast((smartarg ? smartarg->get() : 0), $1_ltype);
  71. }
  72. }
  73. %typemap(out, fragment="SWIG_null_deleter_python") CONST TYPE * {
  74. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner) : 0;
  75. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), $owner | SWIG_POINTER_OWN));
  76. }
  77. %typemap(varin) CONST TYPE * {
  78. void *argp = 0;
  79. int newmem = 0;
  80. int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  81. if (!SWIG_IsOK(res)) {
  82. %variable_fail(res, "$type", "$name");
  83. }
  84. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared;
  85. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0;
  86. if (newmem & SWIG_CAST_NEW_MEMORY) {
  87. tempshared = *%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  88. delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  89. $1 = %const_cast(tempshared.get(), $1_ltype);
  90. } else {
  91. smartarg = %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  92. $1 = %const_cast((smartarg ? smartarg->get() : 0), $1_ltype);
  93. }
  94. }
  95. %typemap(varout, fragment="SWIG_null_deleter_python") CONST TYPE * {
  96. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0;
  97. %set_varoutput(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  98. }
  99. // plain reference
  100. %typemap(in) CONST TYPE & (void *argp = 0, int res = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared) {
  101. int newmem = 0;
  102. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  103. if (!SWIG_IsOK(res)) {
  104. %argument_fail(res, "$type", $symname, $argnum);
  105. }
  106. if (!argp) { %argument_nullref("$type", $symname, $argnum); }
  107. if (newmem & SWIG_CAST_NEW_MEMORY) {
  108. tempshared = *%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  109. delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  110. $1 = %const_cast(tempshared.get(), $1_ltype);
  111. } else {
  112. $1 = %const_cast(%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *)->get(), $1_ltype);
  113. }
  114. }
  115. %typemap(out, fragment="SWIG_null_deleter_python") CONST TYPE & {
  116. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner);
  117. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  118. }
  119. %typemap(varin) CONST TYPE & {
  120. void *argp = 0;
  121. int newmem = 0;
  122. int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  123. if (!SWIG_IsOK(res)) {
  124. %variable_fail(res, "$type", "$name");
  125. }
  126. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared;
  127. if (!argp) { %argument_nullref("$type", $symname, $argnum); }
  128. if (newmem & SWIG_CAST_NEW_MEMORY) {
  129. tempshared = *%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  130. delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  131. $1 = *%const_cast(tempshared.get(), $1_ltype);
  132. } else {
  133. $1 = *%const_cast(%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *)->get(), $1_ltype);
  134. }
  135. }
  136. %typemap(varout, fragment="SWIG_null_deleter_python") CONST TYPE & {
  137. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(&$1 SWIG_NO_NULL_DELETER_0);
  138. %set_varoutput(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  139. }
  140. // plain pointer by reference
  141. // Note: $disown not implemented by default as it will lead to a memory leak of the shared_ptr instance
  142. %typemap(in) TYPE *CONST& (void *argp = 0, int res = 0, $*1_ltype temp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared) {
  143. int newmem = 0;
  144. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SHARED_PTR_DISOWN | %convertptr_flags, &newmem);
  145. if (!SWIG_IsOK(res)) {
  146. %argument_fail(res, "$type", $symname, $argnum);
  147. }
  148. if (newmem & SWIG_CAST_NEW_MEMORY) {
  149. tempshared = *%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  150. delete %reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *);
  151. temp = %const_cast(tempshared.get(), $*1_ltype);
  152. } else {
  153. temp = %const_cast(%reinterpret_cast(argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *)->get(), $*1_ltype);
  154. }
  155. $1 = &temp;
  156. }
  157. %typemap(out, fragment="SWIG_null_deleter_python") TYPE *CONST& {
  158. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_$owner);
  159. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  160. }
  161. %typemap(varin) TYPE *CONST& %{
  162. #error "varin typemap not implemented"
  163. %}
  164. %typemap(varout) TYPE *CONST& %{
  165. #error "varout typemap not implemented"
  166. %}
  167. // shared_ptr by value
  168. %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > (void *argp, int res = 0) {
  169. int newmem = 0;
  170. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  171. if (!SWIG_IsOK(res)) {
  172. %argument_fail(res, "$type", $symname, $argnum);
  173. }
  174. if (argp) $1 = *(%reinterpret_cast(argp, $&ltype));
  175. if (newmem & SWIG_CAST_NEW_MEMORY) delete %reinterpret_cast(argp, $&ltype);
  176. }
  177. %typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > {
  178. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1) : 0;
  179. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  180. }
  181. %typemap(varin) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > {
  182. int newmem = 0;
  183. void *argp = 0;
  184. int res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  185. if (!SWIG_IsOK(res)) {
  186. %variable_fail(res, "$type", "$name");
  187. }
  188. $1 = argp ? *(%reinterpret_cast(argp, $&ltype)) : SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE >();
  189. if (newmem & SWIG_CAST_NEW_MEMORY) delete %reinterpret_cast(argp, $&ltype);
  190. }
  191. %typemap(varout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > {
  192. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1) : 0;
  193. %set_varoutput(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  194. }
  195. // shared_ptr by reference
  196. %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > & (void *argp, int res = 0, $*1_ltype tempshared) {
  197. int newmem = 0;
  198. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  199. if (!SWIG_IsOK(res)) {
  200. %argument_fail(res, "$type", $symname, $argnum);
  201. }
  202. if (newmem & SWIG_CAST_NEW_MEMORY) {
  203. if (argp) tempshared = *%reinterpret_cast(argp, $ltype);
  204. delete %reinterpret_cast(argp, $ltype);
  205. $1 = &tempshared;
  206. } else {
  207. $1 = (argp) ? %reinterpret_cast(argp, $ltype) : &tempshared;
  208. }
  209. }
  210. %typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > & {
  211. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = *$1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1) : 0;
  212. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  213. }
  214. %typemap(varin) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > & %{
  215. #error "varin typemap not implemented"
  216. %}
  217. %typemap(varout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > & %{
  218. #error "varout typemap not implemented"
  219. %}
  220. // shared_ptr by pointer
  221. %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * (void *argp, int res = 0, $*1_ltype tempshared) {
  222. int newmem = 0;
  223. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  224. if (!SWIG_IsOK(res)) {
  225. %argument_fail(res, "$type", $symname, $argnum);
  226. }
  227. if (newmem & SWIG_CAST_NEW_MEMORY) {
  228. if (argp) tempshared = *%reinterpret_cast(argp, $ltype);
  229. delete %reinterpret_cast(argp, $ltype);
  230. $1 = &tempshared;
  231. } else {
  232. $1 = (argp) ? %reinterpret_cast(argp, $ltype) : &tempshared;
  233. }
  234. }
  235. %typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * {
  236. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = $1 && *$1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1) : 0;
  237. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  238. if ($owner) delete $1;
  239. }
  240. %typemap(varin) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * %{
  241. #error "varin typemap not implemented"
  242. %}
  243. %typemap(varout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * %{
  244. #error "varout typemap not implemented"
  245. %}
  246. // shared_ptr by pointer reference
  247. %typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *& (void *argp, int res = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > tempshared, $*1_ltype temp = 0) {
  248. int newmem = 0;
  249. res = SWIG_ConvertPtrAndOwn($input, &argp, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), %convertptr_flags, &newmem);
  250. if (!SWIG_IsOK(res)) {
  251. %argument_fail(res, "$type", $symname, $argnum);
  252. }
  253. if (argp) tempshared = *%reinterpret_cast(argp, $*ltype);
  254. if (newmem & SWIG_CAST_NEW_MEMORY) delete %reinterpret_cast(argp, $*ltype);
  255. temp = &tempshared;
  256. $1 = &temp;
  257. }
  258. %typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *& {
  259. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = *$1 && **$1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(**$1) : 0;
  260. %set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
  261. }
  262. %typemap(varin) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *& %{
  263. #error "varin typemap not implemented"
  264. %}
  265. %typemap(varout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *& %{
  266. #error "varout typemap not implemented"
  267. %}
  268. // Typecheck typemaps
  269. // Note: SWIG_ConvertPtr with void ** parameter set to 0 instead of using SWIG_ConvertPtrAndOwn, so that the casting
  270. // function is not called thereby avoiding a possible smart pointer copy constructor call when casting up the inheritance chain.
  271. %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER,noblock=1)
  272. TYPE CONST,
  273. TYPE CONST &,
  274. TYPE CONST *,
  275. TYPE *CONST&,
  276. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >,
  277. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > &,
  278. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *,
  279. SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *& {
  280. int res = SWIG_ConvertPtr($input, 0, $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), 0);
  281. $1 = SWIG_CheckState(res);
  282. }
  283. // various missing typemaps - If ever used (unlikely) ensure compilation error rather than runtime bug
  284. %typemap(in) CONST TYPE[], CONST TYPE[ANY], CONST TYPE (CLASS::*) %{
  285. #error "typemaps for $1_type not available"
  286. %}
  287. %typemap(out) CONST TYPE[], CONST TYPE[ANY], CONST TYPE (CLASS::*) %{
  288. #error "typemaps for $1_type not available"
  289. %}
  290. %template() SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >;
  291. %enddef