NAME
App::CallDispatcher - synchronous (potentially remote) call_dispatcher invocation
SYNOPSIS
use
App;
$context
= App->context();
$call_dispatcher
=
$context
->service(
"CallDispatcher"
);
# or ...
$call_dispatcher
=
$context
->call_dispatcher();
$call_dispatcher
->call(
$request
,
$response
);
$response
=
$call_dispatcher
->call(
$request
);
$response
=
$call_dispatcher
->call(
%named
);
DESCRIPTION
A CallDispatcher service is a means by which a function call (perhaps remote) may be made synchronously.
Class Group: CallDispatcher
The following classes might be a part of the CallDispatcher Class Group.
Class: App::CallDispatcher
Class: App::CallDispatcher::HTTPSimple
Class: App::CallDispatcher::SOAP
Class: App::CallDispatcher::pRPC
Class: App::CallDispatcher::PlRPC
Class: App::CallDispatcher::Messaging
Class: App::CallDispatcher
A CallDispatcher service is a means by which a function call (perhaps remote) may be made synchronously or asynchronously.
* Throws: App::Exception::CallDispatcher
* Since: 0.01
Class Design
...
Constructor Methods:
new()
The constructor is inherited from App::Service
.
Public Methods:
call()
* Signature:
@returnvals
=
$call_dispatcher
->call(
$service
,
$name
,
$method
,
$args
);
* Param:
$service
string [in]
* Param:
$name
string [in]
* Param:
$method
string [in]
* Param:
$args
ARRAY [in]
* Return:
@returnvals
any
* Throws: App::Exception::CallDispatcher
* Since: 0.01
Sample Usage:
@returnvals
=
$call_dispatcher
->call(
"Repository"
,
"db"
,
"get_rows"
,[
"city"
,{
city_cd
=>
"LAX"
},[
"city_cd"
,
"state"
,
"country"
]]);
The default call dispatcher is a local call dispatcher. It simply passes the call() on to the local context for execution. It results in an in-process method call rather than a remote method call.
Protected Methods:
service_type()
Returns 'CallDispatcher';
* Signature:
$service_type
= App::CallDispatcher->service_type();
* Param: void
* Return:
$service_type
string
* Since: 0.01
$service_type
=
$cdisp
->service_type();
ACKNOWLEDGEMENTS
* Author: Stephen Adkins <spadkins
@gmail
.com>
* License: This is free software. It is licensed under the same terms as Perl itself.