Group
Extension

Matches 10

AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC.pm ( view source; MetaCPAN )
yEvent::JSONRPC;
use strict;
use warnings;
use base 'Exporter';

our $VERSION = '0.15';

our @EXPORT = qw/jsonrpc_client jsonrpc_server/;

use AnyEvent::JSONRPC::TCP::Client;
use AnyEvent::JSONRPC::TC
P::Server;

sub jsonrpc_client($$) {
    my ($host, $port) = @_;

    AnyEvent::JSONRPC::TCP::Client->new(
        host => $host,
        port => $port,
    );
}

sub jsonrpc_server($$) {
    my ($add
ent::JSONRPC::TCP::Server->new(
        address => $address,
        port    => $port,
    );
}

1;

__END__

=encoding utf-8

=for stopwords TCP TCP-based JSONRPC RPC

=head1 NAME

AnyEvent::JSONRPC 
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/HTTP/Server.pm ( view source; MetaCPAN )
vent::JSONRPC::HTTP::Server;
use Moose;

extends 'AnyEvent::JSONRPC::Server';

use Carp;
use Scalar::Util 'weaken';

use AnyEvent::JSONRPC::CondVar;

use AnyEvent::HTTPD;

use JSON::XS;
use JSON::RPC:
    request => sub {
            my ($httpd, $req) = @_;

            my $request = eval { $self->json->decode( $req->content ) };

            unless (defined $request ) {
                $req->respo
$response) {
                $req->respond( [ 200, 'Ok', { "Content-Type" => "application/json" }, $self->json->encode( $response ) ] ); 
            } else {
                $req->respond( [ 204, 'No
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/Client.pm ( view source; MetaCPAN )
e AnyEvent::JSONRPC::Client;

use Any::Moose;

no Any::Moose;

__PACKAGE__->meta->make_immutable;

1;
__END__

=encoding utf-8

=head1 NAME

AnyEvent::JSONRPC::Client - Base class for JSON-RPC clients


=head1 SYNOPSIS

    use AnyEvent::JSONRPC::XXX::Client;
    
    my $client = AnyEvent::JSONRPC::XXX::Client->new(
        ...
    );
    
    # blocking interface
    my $res = $client->call( echo
s for clients in the L<AnyEvent::JSONRPC> suite of
modules. Current implementations includes a
L<TCP|AnyEvent::JSONRPC::TCP::Client> client and a
L<HTTP|AnyEvent::JSONRPC::HTTP::Client> client. See th
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/Utils.pm ( view source; MetaCPAN )
package Anyevent::JSONRPC::Utils;

use base qw(Exporter);
our @EXPORT_OK = qw(
    delegate
    do_moose
    do_exporter
);

sub delegate {
    my $object = shift;
    
    croak("delegate needs a ble
ssed object as parameter") unless blessed $object;

    if ( $object->isa("AnyEvent::JSONRPC::Client") ) {
        # Any call is proxied to the client

        return sub {
            my $cv   = shif
_

=head1 NAME

AnyEvent::JSONRPC::Utils - Helper functions for use with AnyEvent::JSONRPC

=head1 SYNOPSIS

    # XXX being either TCP or HTTP
    my $server = AnyEvent::JSONRPC::XXX::Server->new();
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/Server.pm ( view source; MetaCPAN )
package AnyEvent::JSONRPC::Server;

use Moose;
use JSON::XS;

has json => (
    is      => "ro",
    default => sub {
        JSON::XS->new->allow_blessed(1)->convert_blessed(1);
    },
);

no Moose;
D__

=head1 NAME

AnyEvent::JSONRPC::Server - Base class for JSON-RPC Servers

=head1 SYNOPSIS

    use AnyEvent::JSONRPC::XXX::Server;
    
    my $server = AnyEvent::JSONRPC::TCP::Server->new( ... )
s for servers in the L<AnyEvent::JSONRPC> suite of
modules. Current implementations includes a
L<TCP|AnyEvent::JSONRPC::TCP::Server> client and a
L<HTTP|AnyEvent::JSONRPC::HTTP::Server> client. See th
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/CondVar.pm ( view source; MetaCPAN )
package AnyEvent::JSONRPC::CondVar;
use Any::Moose;

use AnyEvent;

has cv => (
    is      => 'ro',
    isa     => 'AnyEvent::CondVar',
    default => sub {
        AnyEvent->condvar;
    },
    hand
les => [qw( send recv cb )],
);

has call => (
    is       => 'ro',
    isa      => 'JSON::RPC::Common::Procedure::Call',
    required => 1,
    handles  => [qw( is_notification )], 
);

no Any::Moos
AnyEvent::JSONRPC::CondVar - Condvar object used in
AnyEvent::JSONRPC::TCP::Server and AnyEvent::JSONRPC::HTTP::Server

=head1 SEE ALSO

L<AnyEvent::JSONRPC::TCP::Server> and L<AnyEvent::JSONRPC::HTTP
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/HTTP/Client.pm ( view source; MetaCPAN )
package AnyEvent::JSONRPC::HTTP::Client;
use Any::Moose;
use Any::Moose '::Util::TypeConstraints';

extends 'AnyEvent::JSONRPC::Client';

use Carp;
use Scalar::Util 'weaken';

use AnyEvent;
use AnyEve
nt::HTTP;

use JSON::RPC::Common::Procedure::Call;
use JSON::RPC::Common::Procedure::Return;

use MIME::Base64;
use JSON::XS;

has url => (
    is       => 'ro',
    isa      => 'Str',
    required =>
;
    },
);

no Any::Moose;

sub call {
    my ($self, $method, @params) = @_;

    my $request = JSON::RPC::Common::Procedure::Call->inflate ( 
        version => $self->version,
        id      => $
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/TCP/Server.pm ( view source; MetaCPAN )
age AnyEvent::JSONRPC::TCP::Server;
use Moose;

extends 'AnyEvent::JSONRPC::Server';

use Carp;
use Scalar::Util 'weaken';

use AnyEvent::Handle;
use AnyEvent::Socket;

use AnyEvent::JSONRPC::Internal
Handle;
use AnyEvent::JSONRPC::CondVar;
use JSON::RPC::Common::Procedure::Call;

has address => (
    is      => 'ro',
    isa     => 'Maybe[Str]',
    default => undef,
);

has port => (
    is      
   },
            json => $self->json,
            %{ $self->handler_options },
            fh => $fh,
        );
        $handle->on_read(sub {
            shift->unshift_read( json => sub {
        
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/TCP/Client.pm ( view source; MetaCPAN )
package AnyEvent::JSONRPC::TCP::Client;
use Any::Moose;
use Any::Moose '::Util::TypeConstraints';

extends 'AnyEvent::JSONRPC::Client';

use Carp;
use Scalar::Util 'weaken';

use AnyEvent;
use AnyEven
t::Socket;
use AnyEvent::Handle;

use JSON::RPC::Common::Procedure::Call;
use JSON::RPC::Common::Procedure::Return;

has host => (
    is       => 'ro',
    isa      => 'Str',
    required => 1,
);

h
ead(json => sub {
                $self->_handle_response( $_[1] );
            });
        });

        while (my $pooled = shift @{ $self->_request_pool }) {
            $handle->push_write( json =>
AnyEvent-JSONRPC ( P/PM/PMAKHOLM/AnyEvent-JSONRPC-0.15.tar.gz, PMAKHOLM, 2010; MetaCPAN )
AnyEvent-JSONRPC/lib/AnyEvent/JSONRPC/InternalHandle.pm ( view source; MetaCPAN )
package AnyEvent::JSONRPC::InternalHandle;
use Any::Moose;

use AnyEvent;

has cv => (
    is      => 'ro',
    isa     => 'AnyEvent::CondVar',
    default => sub {
        AnyEvent->condvar;
    },
 
ite {
    my ($self, $type, $json) = @_;

    $self->cv->send( $json );
}

__PACKAGE__->meta->make_immutable;

__END__

=for stopwords condvar

=head1 NAME

AnyEvent::JSONRPC::InternalHandle - Handle 
object used internally in
AnyEvent::JSONRPC::TCP::Server

=head1 SEE ALSO

L<AnyEvent::JSONRPC>.

=head1 AUTHOR

Peter Makholm <peter@makholm.net>

=head1 COPYRIGHT AND LICENSE

Copyright (c) 2010 by 

Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.