Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.9 KiB

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