Author image Marvin Humphrey
and 1 contributors

NAME

Boilerplater::Binding::Perl::TypeMap - Convert between BP and Perl via XS.

FUNCTIONS

from_perl

    my $c_code = from_perl( $type, $bp_var, $xs_var, $stack_var );

Return C code which converts from a Perl scalar to a variable of type $type.

Variable declarations must precede the returned code, as from_perl() won't make any declarations itself.

  • type - A Boilerplater::Type, which will be used to select the mapping code.

  • bp_var - The name of the variable being assigned to.

  • xs_var - The C name of the Perl scalar from which we are extracting a value.

  • stack_var - Only required needed when type is Boilerplater::Object indicating that bp_var is an object of class CharBuf, ByteBuf, or Obj. When passing strings or other simple types to Boilerplater functions from Perl, we allow the user to supply simple scalars rather than forcing them to create Boilerplater objects. We do this by creating a ZombieCharBuf on the stack and assigning the string from the Perl scalar to it. stack_var is the name of that ZombieCharBuf wrapper.

to_perl

    my $c_code = to_perl( $type, $xs_var, $bp_var );

Return C code which converts from a variable of type $type to a Perl scalar.

Variable declarations must precede the returned code, as to_perl() won't make any declarations itself.

  • type - A Boilerplater::Type, which will be used to select the mapping code.

  • xs_var - The C name of the Perl scalar being assigned to.

  • bp_var - The name of the variable from which we are extracting a value.

COPYRIGHT AND LICENSE

Copyright 2008-2009 Marvin Humphrey

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.