]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/python/test/pointer_vector.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / python / test / pointer_vector.cpp
CommitLineData
7c673cae
FG
1// Copyright Joel de Guzman 2005-2006. Distributed under the Boost
2// Software License, Version 1.0. (See accompanying
3// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4#include <boost/python.hpp>
5#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
6#include <vector>
7
8using namespace boost::python;
9
10class Abstract
11{
12public:
13 virtual ~Abstract() {}; // silence compiler warningsa
14 virtual std::string f() =0;
15};
16
17class Concrete1 : public Abstract
18{
19public:
20 virtual std::string f() { return "harru"; }
21};
22
23typedef std::vector<Abstract*> ListOfObjects;
24
25class DoesSomething
26{
27public:
28 DoesSomething() {}
29
30 ListOfObjects returnList()
31 {
32 ListOfObjects lst;
33 lst.push_back(new Concrete1()); return lst;
34 }
35};
36
37BOOST_PYTHON_MODULE(pointer_vector_ext)
38{
39class_<Abstract, boost::noncopyable>("Abstract", no_init)
40 .def("f", &Abstract::f)
41 ;
42
43class_<ListOfObjects>("ListOfObjects")
44 .def( vector_indexing_suite<ListOfObjects>() )
45 ;
46
47class_<DoesSomething>("DoesSomething")
48 .def("returnList", &DoesSomething::returnList)
49 ;
50}
51
52