You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
64 lines
2.1 KiB
64 lines
2.1 KiB
// Copyright David Abrahams 2001. |
|
// 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) |
|
#ifndef CLASS_DWA20011214_HPP |
|
# define CLASS_DWA20011214_HPP |
|
|
|
# include <boost/python/detail/prefix.hpp> |
|
# include <boost/utility.hpp> |
|
# include <boost/python/object_core.hpp> |
|
# include <boost/python/type_id.hpp> |
|
# include <cstddef> |
|
|
|
namespace boost { namespace python { |
|
|
|
namespace objects { |
|
|
|
struct BOOST_PYTHON_DECL class_base : python::api::object |
|
{ |
|
// constructor |
|
class_base( |
|
char const* name // The name of the class |
|
|
|
, std::size_t num_types // A list of class_ids. The first is the type |
|
, type_info const*const types // this is wrapping. The rest are the types of |
|
// any bases. |
|
|
|
, char const* doc = 0 // Docstring, if any. |
|
); |
|
|
|
|
|
// Implementation detail. Hiding this in the private section would |
|
// require use of template friend declarations. |
|
void enable_pickling_(bool getstate_manages_dict); |
|
|
|
protected: |
|
void add_property( |
|
char const* name, object const& fget, char const* docstr); |
|
void add_property(char const* name, |
|
object const& fget, object const& fset, char const* docstr); |
|
|
|
void add_static_property(char const* name, object const& fget); |
|
void add_static_property(char const* name, object const& fget, object const& fset); |
|
|
|
// Retrieve the underlying object |
|
void setattr(char const* name, object const&); |
|
|
|
// Set a special attribute in the class which tells Boost.Python |
|
// to allocate extra bytes for embedded C++ objects in Python |
|
// instances. |
|
void set_instance_size(std::size_t bytes); |
|
|
|
// Set an __init__ function which throws an appropriate exception |
|
// for abstract classes. |
|
void def_no_init(); |
|
|
|
// Effects: |
|
// setattr(self, staticmethod(getattr(self, method_name))) |
|
void make_method_static(const char *method_name); |
|
}; |
|
|
|
}}} // namespace boost::python::objects |
|
|
|
#endif // CLASS_DWA20011214_HPP
|
|
|