NAME Perinci::Access - Wrapper for Perinci Riap clients VERSION version 0.29 SYNOPSIS use Perinci::Access; my $pa = Perinci::Access->new; my $res; # use Perinci::Access::InProcess $res = $pa->request(call => "pl:/Mod/SubMod/func"); # ditto $res = $pa->request(call => "/Mod/SubMod/func"); # use Perinci::Access::HTTP::Client $res = $pa->request(info => "http://example.com/Sub/ModSub/func", {uri=>'/Sub/ModSub/func'}); # use Perinci::Access::Simple::Client $res = $pa->request(meta => "riap+tcp://localhost:7001/Sub/ModSub/"); # dies, unknown scheme $res = $pa->request(call => "baz://example.com/Sub/ModSub/"); DESCRIPTION This module provides a convenient wrapper to select appropriate Riap client (Perinci::Access::*) objects based on URI scheme (or lack thereof). riap://perl/Foo/Bar/ -> InProcess /Foo/Bar/ -> InProcess pl:/Foo/Bar -> InProcess http://... -> HTTP::Client https://... -> HTTP::Client riap+tcp://... -> Simple::Client riap+unix://... -> Simple::Client riap+pipe://... -> Simple::Client You can customize or add supported schemes by providing class name or object to the handlers attribute (see its documentation for more details). VARIABLES $Log_Request (BOOL) Whether to log every Riap request. Default is from environment variable LOG_RIAP_REQUEST, or false. Logging is done with Log::Any at trace level. $Log_Response (BOOL) Whether to log every Riap response. Default is from environment variable LOG_RIAP_RESPONSE, or false. Logging is done with Log::Any at trace level. METHODS new(%opts) -> OBJ Create new instance. Known options: * handlers (HASH) A mapping of scheme names and class names or objects. If values are class names, they will be require'd and instantiated. The default is: { riap => 'Perinci::Access::InProcess', pl => 'Perinci::Access::InProcess', http => 'Perinci::Access::HTTP::Client', https => 'Perinci::Access::HTTP::Client', 'riap+tcp' => 'Perinci::Access::Simple::Client', 'riap+unix' => 'Perinci::Access::Simple::Client', 'riap+pipe' => 'Perinci::Access::Simple::Client', } Objects can be given instead of class names. This is used if you need to pass special options when instantiating the class. $pa->request($action, $server_url, \%extra) -> RESP Send Riap request to Riap server. Pass the request to the appropriate Riap client (as configured in "handlers" constructor options). RESP is the enveloped result. ENVIRONMENT LOG_RIAP_REQUEST LOG_RIAP_RESPONSE SEE ALSO Perinci::Access::InProcess Perinci::Access::HTTP::Client Perinci::Access::Simple::Client AUTHOR Steven Haryanto COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Steven Haryanto. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.