NAME
FFI::Platypus::Legacy::Raw::Ptr - Base FFI::Platypus::Legacy::Raw pointer type
VERSION
version 0.06
SYNOPSIS
package Foo;
use FFI::Platypus::Legacy::Raw;
use base qw(FFI::Platypus::Legacy::Raw::Ptr);
*_foo_new = FFI::Platypus::Legacy::Raw->new(
$shared, 'foo_new',
FFI::Platypus::Legacy::Raw::ptr
)->coderef;
sub new {
bless shift->SUPER::new(_foo_new());
}
*get_bar = FFI::Platypus::Legacy::Raw->new(
$shared, 'foo_get_bar',
FFI::Platypus::Legacy::Raw::int,
FFI::Platypus::Legacy::Raw::ptr
)->coderef;
*set_bar = FFI::Platypus::Legacy::Raw->new(
$shared, 'foo_set_bar',
FFI::Platypus::Legacy::Raw::void,
FFI::Platypus::Legacy::Raw::ptr,
FFI::Platypus::Legacy::Raw::int
)->coderef;
*DESTROY = FFI::Platypus::Legacy::Raw->new(
$shared, 'foo_free',
FFI::Platypus::Legacy::Raw::void,
FFI::Platypus::Legacy::Raw::ptr
)->coderef;
1;
package main;
my $foo = Foo->new;
$foo->set_bar(42);
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::Ptr represents a pointer to memory which can be passed to functions taking a FFI::Platypus::Legacy::Raw::ptr
argument.
Note that differently from FFI::Platypus::Legacy::Raw::MemPtr, FFI::Platypus::Legacy::Raw::Ptr
pointers are not automatically deallocated once not in use anymore.
CONSTRUCTOR
new
my $ptr = FFI::Platypus::Legacy::Raw::Ptr->new( $ptr );
Create a new FFI::Platypus::Legacy::Raw::Ptr
pointing to $ptr
, which can be either a FFI::Platypus::Legacy::Raw::MemPtr
or a pointer returned by a C function.
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.