Froody::Invoker - provide a way to run a Froody::Method
# create a new invoker (for local implementations) use Froody::Invoker::Implementation; my $inv = Froody::Invoker::Implementation->new() ->dispatch_class($class); # create a method, and assign it an invoker my $method = Froody::Method->new() ->full_name("fred.bar.baz") ->invoker($inv);
If you just want to write a simple Froody server, you don't need to worry about this class. Go read the documentation for Froody::Implementation instead.
A Froody::Invoker is the counterpart to a Froody::Method. It's essentially responsible for doing whatever task the Froody::Method is describing and generating the Froody::Response. It's called an 'Invoker' because in most cases the classes don't actually contain the implementation code itself, they just know enough to call out to the actual code, or to another server, or somewhere to get the job done.
For this reason, most users of Froody don't ever need to write their own Invoker. They just need to implement the code whatever Invoker they're relying on calls.
Froody::Invoker itself is an abstract superclass. There are four concrete Invoker subclasses that ship in the Froody distribution:
Allows you to write local implementations with simple Perl methods.
Dispatches calls to a remote Froody server
See the module documentation for each Invoker for more details on how to use them.
The one and only method you need to write for a given Invoker is invoke. This method takes two arguments, the Froody::Method that's being invoked and the hashref containing the parameters that it's being called with. It has to return a Froody::Response.
invoke
An Invoker is responsible for doing everything from checking the parameters that have been passed in are correctly formatted to throwing errors if something goes wrong. If you throw an error inside an Invoker that's been called from a Froody::Server it'll be caught by the Dispatcher and turned into a nice XML style error that'll be sent back to the user.
Here's an example module that simply returns an empty reponse for every request:
package Froody::Invoker::Null; use base qw(Froody::Invoker); use Froody::Response; sub invoke { my $self = shift; my $method = shift; my $params = shift; return Froody::Response->new() } 1;
Provides a human readable description of where the invocation is going to actually occur.
None known.
Please report any bugs you find via the CPAN RT system. http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Froody
Copyright Fotango 2005. All rights reserved.
Please see the main Froody documentation for details of who has worked on this project.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Froody, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Froody
CPAN shell
perl -MCPAN -e shell install Froody
For more information on module installation, please visit the detailed CPAN module installation guide.