OLD | NEW |
(Empty) | |
| 1 // shared_ptr namespaces could be boost or std or std::tr1 |
| 2 // For example for std::tr1, use: |
| 3 // #define SWIG_SHARED_PTR_NAMESPACE std |
| 4 // #define SWIG_SHARED_PTR_SUBNAMESPACE tr1 |
| 5 |
| 6 #if !defined(SWIG_SHARED_PTR_NAMESPACE) |
| 7 # define SWIG_SHARED_PTR_NAMESPACE boost |
| 8 #endif |
| 9 |
| 10 #if defined(SWIG_SHARED_PTR_SUBNAMESPACE) |
| 11 # define SWIG_SHARED_PTR_QNAMESPACE SWIG_SHARED_PTR_NAMESPACE::SWIG_SHARED_PTR_S
UBNAMESPACE |
| 12 #else |
| 13 # define SWIG_SHARED_PTR_QNAMESPACE SWIG_SHARED_PTR_NAMESPACE |
| 14 #endif |
| 15 |
| 16 namespace SWIG_SHARED_PTR_NAMESPACE { |
| 17 #if defined(SWIG_SHARED_PTR_SUBNAMESPACE) |
| 18 namespace SWIG_SHARED_PTR_SUBNAMESPACE { |
| 19 #endif |
| 20 template <class T> class shared_ptr { |
| 21 }; |
| 22 #if defined(SWIG_SHARED_PTR_SUBNAMESPACE) |
| 23 } |
| 24 #endif |
| 25 } |
| 26 |
| 27 %fragment("SWIG_null_deleter", "header") { |
| 28 struct SWIG_null_deleter { |
| 29 void operator() (void const *) const { |
| 30 } |
| 31 }; |
| 32 %#define SWIG_NO_NULL_DELETER_0 , SWIG_null_deleter() |
| 33 %#define SWIG_NO_NULL_DELETER_1 |
| 34 %#define SWIG_NO_NULL_DELETER_SWIG_POINTER_NEW |
| 35 %#define SWIG_NO_NULL_DELETER_SWIG_POINTER_OWN |
| 36 } |
| 37 |
| 38 |
| 39 // Main user macro for defining shared_ptr typemaps for both const and non-const
pointer types |
| 40 // For plain classes, do not use for derived classes |
| 41 %define SWIG_SHARED_PTR(PROXYCLASS, TYPE...) |
| 42 SWIG_SHARED_PTR_TYPEMAPS(PROXYCLASS, , TYPE) |
| 43 SWIG_SHARED_PTR_TYPEMAPS(PROXYCLASS, const, TYPE) |
| 44 %enddef |
| 45 |
| 46 // Main user macro for defining shared_ptr typemaps for both const and non-const
pointer types |
| 47 // For derived classes |
| 48 %define SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE...) |
| 49 SWIG_SHARED_PTR_TYPEMAPS(PROXYCLASS, , TYPE) |
| 50 SWIG_SHARED_PTR_TYPEMAPS(PROXYCLASS, const, TYPE) |
| 51 %types(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > = SWIG_SHARED_PTR_QNAMESPA
CE::shared_ptr< BASECLASSTYPE >) %{ |
| 52 *newmemory = SWIG_CAST_NEW_MEMORY; |
| 53 return (void *) new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >(*(
SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *)$from); |
| 54 %} |
| 55 %extend TYPE { |
| 56 static SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUp
cast(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) { |
| 57 return swigSharedPtrUpcast; |
| 58 } |
| 59 } |
| 60 %enddef |
| 61 |
OLD | NEW |