PortableServer::DynamicImplementation - A base module for implementing a Dynamic Skeleton Interface.
use PortableServer::DynamicImplementation; our @ISA = qw(PortableServer::DynamicImplementation);
sub invoke {
my($self, $req) = @_;
my $op = $req->operation();
## Get an array of argument references
my $args = Util::Shared::create_array();
$req->arguments($args);
if ($op eq 'operation_name') {
...
}
elsif ($op eq 'other_operation_name') {
...
}
...
}
sub _ids {
return ['IDL:foo:1.0', 'IDL:bar:1.0'];
}
The PortableServer::DynamicImplementation module allows the user a method
of implementing an IDL interface without a static skeleton. The user
must provide an implementation of the invoke and _ids methods.
invoke - This method will be called when a servant does not inherit
from a static skeleton, but does inhert from
PortableServer::DynamicImplementation and implements the interface for
the designated repository id.
_ids - Returns an array reference of repository ids that are
implemented by the servant's invoke method.