// 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 ENUM_BASE_DWA200298_HPP

# define ENUM_BASE_DWA200298_HPP



# include <boost/python/object_core.hpp>

# include <boost/python/type_id.hpp>

# include <boost/python/converter/to_python_function_type.hpp>

# include <boost/python/converter/convertible_function.hpp>

# include <boost/python/converter/constructor_function.hpp>



namespace boost { namespace python { namespace objects { 



struct BOOST_PYTHON_DECL enum_base : python::api::object

{

 protected:

    enum_base(

        char const* name

        , converter::to_python_function_t

        , converter::convertible_function

        , converter::constructor_function

        , type_info

        , const char *doc = 0

        );



    void add_value(char const* name, long value);

    void export_values();

    

    static PyObject* to_python(PyTypeObject* type, long x);

};



}}} // namespace boost::python::object



#endif // ENUM_BASE_DWA200298_HPP

