48 lines
1,002 B
Perl
48 lines
1,002 B
Perl
# file: runme.pl
|
|
|
|
# This file illustrates the cross language polymorphism using directors.
|
|
|
|
use example;
|
|
|
|
|
|
{
|
|
package PlCallback;
|
|
use base 'example::Callback';
|
|
sub run {
|
|
print "PlCallback->run()\n";
|
|
}
|
|
}
|
|
|
|
# Create an Caller instance
|
|
|
|
$caller = example::Caller->new();
|
|
|
|
# Add a simple C++ callback (caller owns the callback, so
|
|
# we disown it first by clearing the .thisown flag).
|
|
|
|
print "Adding and calling a normal C++ callback\n";
|
|
print "----------------------------------------\n";
|
|
|
|
$callback = example::Callback->new();
|
|
$callback->DISOWN();
|
|
$caller->setCallback($callback);
|
|
$caller->call();
|
|
$caller->delCallback();
|
|
|
|
print "\n";
|
|
print "Adding and calling a Perl callback\n";
|
|
print "----------------------------------\n";
|
|
|
|
# Add a Perl callback (caller owns the callback, so we
|
|
# disown it first by calling DISOWN).
|
|
|
|
$callback = PlCallback->new();
|
|
$callback->DISOWN();
|
|
$caller->setCallback($callback);
|
|
$caller->call();
|
|
$caller->delCallback();
|
|
|
|
# All done.
|
|
|
|
print "\n";
|
|
print "perl exit\n";
|