| // Copyright David Abrahams 2002. |
| // 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 OBJECT_PROTOCOL_CORE_DWA2002615_HPP |
| # define OBJECT_PROTOCOL_CORE_DWA2002615_HPP |
| |
| # include <boost/python/detail/prefix.hpp> |
| |
| # include <boost/python/handle_fwd.hpp> |
| |
| namespace boost { namespace python { |
| |
| namespace api |
| { |
| class object; |
| |
| BOOST_PYTHON_DECL object getattr(object const& target, object const& key); |
| BOOST_PYTHON_DECL object getattr(object const& target, object const& key, object const& default_); |
| BOOST_PYTHON_DECL void setattr(object const& target, object const& key, object const& value); |
| BOOST_PYTHON_DECL void delattr(object const& target, object const& key); |
| |
| // These are defined for efficiency, since attributes are commonly |
| // accessed through literal strings. |
| BOOST_PYTHON_DECL object getattr(object const& target, char const* key); |
| BOOST_PYTHON_DECL object getattr(object const& target, char const* key, object const& default_); |
| BOOST_PYTHON_DECL void setattr(object const& target, char const* key, object const& value); |
| BOOST_PYTHON_DECL void delattr(object const& target, char const* key); |
| |
| BOOST_PYTHON_DECL object getitem(object const& target, object const& key); |
| BOOST_PYTHON_DECL void setitem(object const& target, object const& key, object const& value); |
| BOOST_PYTHON_DECL void delitem(object const& target, object const& key); |
| |
| BOOST_PYTHON_DECL object getslice(object const& target, handle<> const& begin, handle<> const& end); |
| BOOST_PYTHON_DECL void setslice(object const& target, handle<> const& begin, handle<> const& end, object const& value); |
| BOOST_PYTHON_DECL void delslice(object const& target, handle<> const& begin, handle<> const& end); |
| } |
| |
| using api::getattr; |
| using api::setattr; |
| using api::delattr; |
| |
| using api::getitem; |
| using api::setitem; |
| using api::delitem; |
| |
| using api::getslice; |
| using api::setslice; |
| using api::delslice; |
| |
| }} // namespace boost::python |
| |
| #endif // OBJECT_PROTOCOL_CORE_DWA2002615_HPP |