12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // Allow for different namespaces for shared_ptr / intrusive_ptr - they could be boost or std or std::tr1
- // For example for std::tr1, use:
- // #define SWIG_SHARED_PTR_NAMESPACE std
- // #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
- // #define SWIG_INTRUSIVE_PTR_NAMESPACE boost
- // #define SWIG_INTRUSIVE_PTR_SUBNAMESPACE
- #if !defined(SWIG_INTRUSIVE_PTR_NAMESPACE)
- # define SWIG_INTRUSIVE_PTR_NAMESPACE boost
- #endif
- #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE)
- # define SWIG_INTRUSIVE_PTR_QNAMESPACE SWIG_INTRUSIVE_PTR_NAMESPACE::SWIG_INTRUSIVE_PTR_SUBNAMESPACE
- #else
- # define SWIG_INTRUSIVE_PTR_QNAMESPACE SWIG_INTRUSIVE_PTR_NAMESPACE
- #endif
- namespace SWIG_INTRUSIVE_PTR_NAMESPACE {
- #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE)
- namespace SWIG_INTRUSIVE_PTR_SUBNAMESPACE {
- #endif
- template <class T> class intrusive_ptr {
- };
- #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE)
- }
- #endif
- }
- %fragment("SWIG_intrusive_deleter", "header") {
- template<class T> struct SWIG_intrusive_deleter {
- void operator()(T *p) {
- if (p)
- intrusive_ptr_release(p);
- }
- };
- }
- %fragment("SWIG_null_deleter", "header") {
- struct SWIG_null_deleter {
- void operator() (void const *) const {
- }
- };
- %#define SWIG_NO_NULL_DELETER_0 , SWIG_null_deleter()
- %#define SWIG_NO_NULL_DELETER_1
- }
- // Workaround empty first macro argument bug
- #define SWIGEMPTYHACK
- // Main user macro for defining intrusive_ptr typemaps for both const and non-const pointer types
- %define %intrusive_ptr(TYPE...)
- %feature("smartptr", noblock=1) TYPE { SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > }
- SWIG_INTRUSIVE_PTR_TYPEMAPS(SWIGEMPTYHACK, TYPE)
- SWIG_INTRUSIVE_PTR_TYPEMAPS(const, TYPE)
- %enddef
- %define %intrusive_ptr_no_wrap(TYPE...)
- %feature("smartptr", noblock=1) TYPE { SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > }
- SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(SWIGEMPTYHACK, TYPE)
- SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(const, TYPE)
- %enddef
- // Legacy macros
- %define SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE...)
- #warning "SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE) is deprecated. Please use %intrusive_ptr(TYPE) instead."
- %intrusive_ptr(TYPE)
- %enddef
- %define SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE...)
- #warning "SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE) is deprecated. Please use %intrusive_ptr(TYPE) instead."
- %intrusive_ptr(TYPE)
- %enddef
- %define SWIG_INTRUSIVE_PTR_NO_WRAP(PROXYCLASS, TYPE...)
- #warning "SWIG_INTRUSIVE_PTR_NO_WRAP(PROXYCLASS, TYPE) is deprecated. Please use %intrusive_ptr_no_wrap(TYPE) instead."
- %intrusive_ptr_no_wrap(TYPE)
- %enddef
- %define SWIG_INTRUSIVE_PTR_DERIVED_NO_WRAP(PROXYCLASS, BASECLASSTYPE, TYPE...)
- #warning "SWIG_INTRUSIVE_PTR_DERIVED_NO_WRAP(PROXYCLASS, BASECLASSTYPE, TYPE) is deprecated. Please use %intrusive_ptr_no_wrap(TYPE) instead."
- %intrusive_ptr_no_wrap(TYPE)
- %enddef
|