]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/python/include/boost/python/object/class.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / python / include / boost / python / object / class.hpp
CommitLineData
7c673cae
FG
1// Copyright David Abrahams 2001.
2// Distributed under the Boost Software License, Version 1.0. (See
3// accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5#ifndef CLASS_DWA20011214_HPP
6# define CLASS_DWA20011214_HPP
7
8# include <boost/python/detail/prefix.hpp>
9# include <boost/python/object_core.hpp>
10# include <boost/python/type_id.hpp>
11# include <cstddef>
12
13namespace boost { namespace python {
14
15namespace objects {
16
17struct BOOST_PYTHON_DECL class_base : python::api::object
18{
19 // constructor
20 class_base(
21 char const* name // The name of the class
22
23 , std::size_t num_types // A list of class_ids. The first is the type
24 , type_info const*const types // this is wrapping. The rest are the types of
25 // any bases.
26
27 , char const* doc = 0 // Docstring, if any.
28 );
29
30
31 // Implementation detail. Hiding this in the private section would
32 // require use of template friend declarations.
33 void enable_pickling_(bool getstate_manages_dict);
34
35 protected:
36 void add_property(
37 char const* name, object const& fget, char const* docstr);
38 void add_property(char const* name,
39 object const& fget, object const& fset, char const* docstr);
40
41 void add_static_property(char const* name, object const& fget);
42 void add_static_property(char const* name, object const& fget, object const& fset);
43
44 // Retrieve the underlying object
45 void setattr(char const* name, object const&);
46
47 // Set a special attribute in the class which tells Boost.Python
48 // to allocate extra bytes for embedded C++ objects in Python
49 // instances.
50 void set_instance_size(std::size_t bytes);
51
52 // Set an __init__ function which throws an appropriate exception
53 // for abstract classes.
54 void def_no_init();
55
56 // Effects:
57 // setattr(self, staticmethod(getattr(self, method_name)))
58 void make_method_static(const char *method_name);
59};
60
61}}} // namespace boost::python::objects
62
63#endif // CLASS_DWA20011214_HPP