12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright Niall Douglas 2005.
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- # include <boost/python/return_opaque_pointer.hpp>
- # include <boost/python/def.hpp>
- # include <boost/python/module.hpp>
- # include <boost/python/return_value_policy.hpp>
- static void *test=(void *) 78;
- void *get()
- {
- return test;
- }
- void *getnull()
- {
- return 0;
- }
- void use(void *a)
- {
- if(a!=test)
- throw std::runtime_error(std::string("failed"));
- }
- int useany(void *a)
- {
- return a ? 1 : 0;
- }
- namespace bpl = boost::python;
- BOOST_PYTHON_MODULE(voidptr_ext)
- {
- bpl::def("get", &::get, bpl::return_value_policy<bpl::return_opaque_pointer>());
- bpl::def("getnull", &::getnull, bpl::return_value_policy<bpl::return_opaque_pointer>());
- bpl::def("use", &::use);
- bpl::def("useany", &::useany);
- }
|