NAME
FFI::Platypus::Legacy::Raw::Callback - FFI::Platypus::Legacy::Raw function pointer type
VERSION
version 0.06
DESCRIPTION
FFI::Platypus::Legacy::Raw and friends are a fork of FFI::Raw that uses FFI::Platypus instead of FFI::Raw's own libffi implementation. It is intended for use when migrating from FFI::Raw to FFI::Platypus. The main reason one might have for switching from Raw to Platypus is because Platypus is actively maintained, provides a more powerful interface, can be much faster when functions are "attached", and works on more platforms than Raw. This module should be a drop in replacement for FFI::Raw, simply replace all instances of FFI::Raw
to FFI::Platypus::Legacy::Raw
. See also Alt::FFI::Raw::Platypus for a way to use this module without making any source code changes.
A FFI::Platypus::Legacy::Raw::Callback represents a function pointer to a Perl routine. It can be passed to functions taking a FFI::Platypus::Legacy::Raw::ptr
type.
CONSTRUCTOR
new
my $callback = FFI::Platypus::Legacy::Raw::Callback->new( $coderef, $ret_type, @arg_types );
Create a FFI::Platypus::Legacy::Raw::Callback
using the code reference $coderef
as body. The signature (return and arguments types) must also be passed.
CAVEATS
For callbacks with a FFI::Platypus::Legacy::Raw::str
return type, the string value will be copied to a private field on the callback object. The memory for this value will be freed the next time the callback is called, or when the callback itself is freed. For more exact control over when the return value is freed, you can instead use FFI::Platypus::Legacy::Raw::ptr
type and return a FFI::Platypus::Legacy::Raw::MemPtr object.
AUTHOR
Original author: Alessandro Ghedini (ghedo, ALEXBIO)
Current maintainer: Graham Ollis <plicease@cpan.org>
Contributors:
Bakkiaraj Murugesan (bakkiaraj)
Dylan Cali (CALID)
Brian Wightman (MidLifeXis, MLX)
David Steinbrunner (dsteinbrunner)
Olivier Mengué (DOLMEN)
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Alessandro Ghedini.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.