// This file has been generated by Py++.

#include "boost/python.hpp"
#include "__ctypes_integration.pypp.hpp"
#include "opencv_headers.hpp"
#include "boost/python/object.hpp"
#include "boost/python/str.hpp"
#include "boost/python/list.hpp"
#include "boost/python/tuple.hpp"
#include "CvAttrList.pypp.hpp"

namespace bp = boost::python;

struct CvAttrList_wrapper : CvAttrList, bp::wrapper< CvAttrList > {

    CvAttrList_wrapper(CvAttrList const & arg )
    : CvAttrList( arg )
      , bp::wrapper< CvAttrList >(){
        // copy constructor
        
    }

    CvAttrList_wrapper()
    : CvAttrList()
      , bp::wrapper< CvAttrList >(){
        // null constructor
        
    }

    static ::CvAttrList * get_next(CvAttrList const & inst ){
        return inst.next;
    }
    
    static void set_next( CvAttrList & inst, ::CvAttrList * new_value ){ 
        inst.next = new_value;
    }

    static bp::object get_attr( CvString const & inst ){
    if(!inst.ptr) return bp::object();
    bp::list l;
    for(int i = 0; inst.ptr[i]; ++i) l.append(inst.ptr[i]);
    return bp::tuple(l);
}

};

void register_CvAttrList_class(){

    bp::class_< CvAttrList_wrapper >( "CvAttrList" )    
        .add_property( "this", pyplus_conv::make_addressof_inst_getter< CvAttrList >() )    
        .add_property( "next"
                    , bp::make_function( (::CvAttrList * (*)( ::CvAttrList const & ))(&CvAttrList_wrapper::get_next), bp::return_internal_reference< >() )
                    , bp::make_function( (void (*)( ::CvAttrList &,::CvAttrList * ))(&CvAttrList_wrapper::set_next), bp::with_custodian_and_ward_postcall< 1, 2 >() ) )    
        .add_property( "attr", bp::make_function(&CvAttrList_wrapper::get_attr) );

}
