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

#include "boost/python.hpp"
#include "python_CEGUI.h"
#include "XMLParser.pypp.hpp"

namespace bp = boost::python;

struct XMLParser_wrapper : CEGUI::XMLParser, bp::wrapper< CEGUI::XMLParser > {

    XMLParser_wrapper( )
    : CEGUI::XMLParser( )
      , bp::wrapper< CEGUI::XMLParser >(){
        // null constructor
    
    }

    virtual void cleanupImpl(  ){
        bp::override func_cleanupImpl = this->get_override( "cleanupImpl" );
        func_cleanupImpl(  );
    }

    virtual bool initialiseImpl(  ){
        bp::override func_initialiseImpl = this->get_override( "initialiseImpl" );
        return func_initialiseImpl(  );
    }

    virtual void parseXMLFile( ::CEGUI::XMLHandler & handler, ::CEGUI::String const & filename, ::CEGUI::String const & schemaName, ::CEGUI::String const & resourceGroup ){
        bp::override func_parseXMLFile = this->get_override( "parseXMLFile" );
        func_parseXMLFile( boost::ref(handler), boost::ref(filename), boost::ref(schemaName), boost::ref(resourceGroup) );
    }

};

void register_XMLParser_class(){

    { //::CEGUI::XMLParser
        typedef bp::class_< XMLParser_wrapper, bp::bases< CEGUI::PropertySet >, boost::noncopyable > XMLParser_exposer_t;
        XMLParser_exposer_t XMLParser_exposer = XMLParser_exposer_t( "XMLParser", "*!\n\
        \n\
            This is an abstract class that is used by CEGUI to interface with XML parser libraries.\n\
         *\n", bp::init< >("*!\n\
        \n\
            XMLParser base class constructor.\n\
         *\n") );
        bp::scope XMLParser_scope( XMLParser_exposer );
        { //::CEGUI::XMLParser::cleanup
        
            typedef void ( ::CEGUI::XMLParser::*cleanup_function_type )(  ) ;
            
            XMLParser_exposer.def( 
                "cleanup"
                , cleanup_function_type( &::CEGUI::XMLParser::cleanup )
                , "*!\n\
                    \n\
                        Cleans up the XMLParser module after use.\n\
            \n\
                        Note that this calls the protected abstract method 'cleanupImpl', which should\n\
                        be provided in your implementation to perform any required cleanup.\n\
            \n\
                    @return\n\
                        Nothing.\n\
                     *\n" );
        
        }
        { //::CEGUI::XMLParser::cleanupImpl
        
            typedef void ( XMLParser_wrapper::*cleanupImpl_function_type )(  ) ;
            
            XMLParser_exposer.def( 
                "cleanupImpl"
                , cleanupImpl_function_type( &XMLParser_wrapper::cleanupImpl )
                , "*!\n\
                    \n\
                        abstract method which cleans up the XMLParser after use.\n\
            \n\
                    @return\n\
                        Nothing.\n\
                     *\n" );
        
        }
        { //::CEGUI::XMLParser::getIdentifierString
        
            typedef ::CEGUI::String const & ( ::CEGUI::XMLParser::*getIdentifierString_function_type )(  ) const;
            
            XMLParser_exposer.def( 
                "getIdentifierString"
                , getIdentifierString_function_type( &::CEGUI::XMLParser::getIdentifierString )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
                    \n\
                        Return identification string for the XML parser module.  If the internal id string has\
                        not been\n\
                        set by the XML parser module creator, a generic string of Unknown XML parser will be\
                        returned.\n\
            \n\
                    @return\n\
                        String object holding a string that identifies the XML parser in use.\n\
                    *\n" );
        
        }
        { //::CEGUI::XMLParser::initialise
        
            typedef bool ( ::CEGUI::XMLParser::*initialise_function_type )(  ) ;
            
            XMLParser_exposer.def( 
                "initialise"
                , initialise_function_type( &::CEGUI::XMLParser::initialise )
                , "*!\n\
                    \n\
                        Initialises the XMLParser module ready for use.\n\
            \n\
                        Note that this calls the protected abstract method 'initialiseImpl', which should\n\
                        be provided in your implementation to perform any required initialisation.\n\
            \n\
                    @return\n\
                        - true if the module initialised successfully.\n\
                        - false if the module initialisation failed.\n\
                     *\n" );
        
        }
        { //::CEGUI::XMLParser::initialiseImpl
        
            typedef bool ( XMLParser_wrapper::*initialiseImpl_function_type )(  ) ;
            
            XMLParser_exposer.def( 
                "initialiseImpl"
                , initialiseImpl_function_type( &XMLParser_wrapper::initialiseImpl )
                , "*!\n\
                    \n\
                        abstract method which initialises the XMLParser ready for use.\n\
            \n\
                    @return\n\
                        - true if the module initialised successfully.\n\
                        - false if the module initialisation failed.\n\
                     *\n" );
        
        }
        { //::CEGUI::XMLParser::parseXMLFile
        
            typedef void ( ::CEGUI::XMLParser::*parseXMLFile_function_type )( ::CEGUI::XMLHandler &,::CEGUI::String const &,::CEGUI::String const &,::CEGUI::String const & ) ;
            
            XMLParser_exposer.def( 
                "parseXMLFile"
                , bp::pure_virtual( parseXMLFile_function_type(&::CEGUI::XMLParser::parseXMLFile) )
                , ( bp::arg("handler"), bp::arg("filename"), bp::arg("schemaName"), bp::arg("resourceGroup") )
                , "*!\n\
                    \n\
                        abstract method which initiates parsing of an XML file.\n\
            \n\
                    @param handler\n\
                        XMLHandler based object which will process the XML elements.\n\
            \n\
                    @param filename\n\
                        String object holding the filename of the XML file to be parsed.\n\
            \n\
                    @param schemaName\n\
                        String object holding the name of the XML schema file to use for validating the XML.\n\
                        Note that whether this is used or not is dependant upon the XMLParser in use.\n\
            \n\
                    @param resourceGroup\n\
                        String object holding the resource group identifier which will be passed to the\n\
                        ResourceProvider when loading the XML and schema files.\n\
            \n\
                    @return\n\
                        Nothing.\n\
                     *\n" );
        
        }
    }

}
