Tyler MacDonald > CGI-JSONRPC > CGI::JSONRPC::Obj

Download:
CGI-JSONRPC-0.11.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source  

NAME ^

CGI::JSONRPC::Obj - Base class for easy handler creation

SYNOPSIS ^

  package MyHandler;
  use CGI::JSONRPC::Obj;

  sub jsonrpc_javascript {
    my $js;
     # construct javascript object
    return 
  }
  
  sub do_something {
    # handler that jsonrpc will call... 
  }

DESCRIPTION ^

CGI::JSONRPC::Obj is a base class you can use to ease the creation of object handlers. Although it's fairly trivial to roll your own we recommend that all handlers use this class for forward compatablity reasons.

This object can all be viewed as documenting and defining the behaviour required of all objects served via CGI::JSONRPC.

INTERACTION WITH DISPATCHER ^

When a CGI::JSONRPC call is dispatched the following happens:

dispatcher creates object

The dispatcher calls the jsonrcp_new method for you object passing the id value recieved from javascript.

dispatcher calls method

The dispatcher will then call your method passing in the arguments recieved in the call.

GET request

The dispatcher will return the output of the json_javascript method.

METHODS ^

jsonrpc_new($id)

Constructs the jsonrpc_object and inititializes it from the passed id if appropriate. By default there is no serialization of objects so it is the sole responsibility of all base classes to implement it. (see CGI::JSONRPC::Obj::Session for an example)

jsonrpc_javascript

Should return the javascript that is the javascript expression of this object. By default this returns the empty string.

jsonrpc_js_name

Convenience method that returns a javascript safe expression of this objects class. Never called by the dispatcher but can be used to generate the name to be passed in the class argument in subsequent CGI::JSONRPC calls.

AUTHOR ^

Tyler "Crackerjack" MacDonald <japh@crackerjack.net> and David Labatte <buggyd@justanotherperlhacker.com>.

A lot of the JavaScript code was borrowed from Ingy döt Net's Jemplate package.

LICENSE ^

Copyright 2006 Tyler "Crackerjack" MacDonald <japh@crackerjack.net>

This is free software; You may distribute it under the same terms as perl itself.

SEE ALSO ^

The "examples" directory (examples/httpd.conf and examples/hello.html), JSON::Syck, http://www.json-rpc.org/.

syntax highlighting: