Clownfish::Binding::Perl::TypeMap - Convert between BP and Perl via XS.
TypeMap serves up C code fragments for translating between Perl data structures and Clownfish data structures. The functions to_perl() and from_perl() achieve this for individual types; write_xs_typemap() exports all types using the XS "typemap" format documented in perlxs.
perlxs
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 Clownfish::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 Clownfish::Object indicating that bp_var is an either an Obj or a CharBuf. When passing strings or other simple types to Clownfish functions from Perl, we allow the user to supply simple scalars rather than forcing them to create Clownfish 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.
type
bp_var
stack_var
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.
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.
Clownfish::Binding::Perl::Typemap->write_xs_typemap( hierarchy => $hierarchy, );
hierarchy - A Clownfish::Hierarchy.
Auto-generate a "typemap" file that adheres to the conventions documented in perlxs.
We generate this file on the fly rather than maintain a static copy because we want an entry for each Clownfish type so that we can differentiate between them when checking arguments. Keeping the entries up-to-date manually as classes come and go would be a pain.
Copyright 2008-2010 Marvin Humphrey
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install KSx::Simple, copy and paste the appropriate command in to your terminal.
cpanm
cpanm KSx::Simple
CPAN shell
perl -MCPAN -e shell install KSx::Simple
For more information on module installation, please visit the detailed CPAN module installation guide.