mirror of https://gitee.com/bigwinds/arangodb
76 lines
1.9 KiB
C++
76 lines
1.9 KiB
C++
/* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
|
|
distribution is subject to 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)
|
|
*/
|
|
|
|
// Includes ====================================================================
|
|
#include <boost/python.hpp>
|
|
#include <virtual.h>
|
|
|
|
// Using =======================================================================
|
|
using namespace boost::python;
|
|
|
|
// Declarations ================================================================
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
struct virtual_C_Wrapper: virtual_::C
|
|
{
|
|
virtual_C_Wrapper(PyObject* self_, const virtual_::C & p0):
|
|
virtual_::C(p0), self(self_) {}
|
|
|
|
virtual_C_Wrapper(PyObject* self_):
|
|
virtual_::C(), self(self_) {}
|
|
|
|
int f() {
|
|
return call_method< int >(self, "f");
|
|
}
|
|
|
|
int default_f() {
|
|
return virtual_::C::f();
|
|
}
|
|
|
|
void bar(int p0) {
|
|
call_method< void >(self, "bar", p0);
|
|
}
|
|
|
|
void default_bar(int p0) {
|
|
virtual_::C::bar(p0);
|
|
}
|
|
|
|
void bar(char * p0) {
|
|
call_method< void >(self, "bar", p0);
|
|
}
|
|
|
|
void default_bar(char * p0) {
|
|
virtual_::C::bar(p0);
|
|
}
|
|
|
|
int f_abs() {
|
|
return call_method< int >(self, "f_abs");
|
|
}
|
|
|
|
PyObject* self;
|
|
};
|
|
|
|
|
|
|
|
}// namespace
|
|
|
|
|
|
// Module ======================================================================
|
|
BOOST_PYTHON_MODULE(virtual)
|
|
{
|
|
class_< virtual_::C, boost::noncopyable, virtual_C_Wrapper >("C", init< >())
|
|
.def("get_name", &virtual_::C::get_name)
|
|
.def("f", &virtual_::C::f, &virtual_C_Wrapper::default_f)
|
|
.def("bar", (void (virtual_::C::*)(int) )&virtual_::C::bar, (void (virtual_C_Wrapper::*)(int))&virtual_C_Wrapper::default_bar)
|
|
.def("bar", (void (virtual_::C::*)(char *) )&virtual_::C::bar, (void (virtual_C_Wrapper::*)(char *))&virtual_C_Wrapper::default_bar)
|
|
;
|
|
|
|
def("call_f", &virtual_::call_f);
|
|
}
|