Re: [pygccxml-development] FT - recent changes
Brought to you by:
mbaas,
roman_yakovenko
|
From: Roman Y. <rom...@gm...> - 2006-10-25 18:55:35
|
On 10/25/06, Matthias Baas <ba...@ir...> wrote:
> Roman Yakovenko wrote:
> > For example:
> >
> > struct error_t{};
> >
> > void do_smth( ..., error_t& );
> >
> > I want to expose do_smth in 2 ways:
> >
> > 1. as is: def( "do_smth_no_raise", &do_smth );
> > 2. error status is converted by Py++ to exception:
> >
> > void do_smth_raise(){
> > error_t x;
> > do_smth( x );
> > if x contains error:
> > throw actual error;
> > }
> >
> > def( "do_smth", &do_smth_raise );
> >
> >
> > do_smth.add_transformation() #<- use Py++ default behaviour
> > do_smth.add_transformation( raise_on_error( 0, ... ) )
>
> How do you rename the first version to "do_smth_no_raise" (without
> renaming the other one)?
do_smth.add_transformation( "do_smth_no_raise", raise_on_error( 0, ... ) )
I want to make it clear: this functionality is disabled now.
But in future function_transformation_t class will get new property - alias.
add_transformation method will change:
def add_transformation( *args ):
alias = self.alias
if args and isinstance( args[0], str ):
alias = args[0]
args = args[1:]
....
So it should be pretty simple to add it. I just want to concentrate my attention
on small refactoring steps.
--
Roman Yakovenko
C++ Python language binding
http://www.language-binding.net/
|