summaryrefslogtreecommitdiff
path: root/js/dojo-1.6/dojox/rpc/JsonRPC.xd.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/dojo-1.6/dojox/rpc/JsonRPC.xd.js')
-rw-r--r--js/dojo-1.6/dojox/rpc/JsonRPC.xd.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/rpc/JsonRPC.xd.js b/js/dojo-1.6/dojox/rpc/JsonRPC.xd.js
new file mode 100644
index 0000000..84e3619
--- /dev/null
+++ b/js/dojo-1.6/dojox/rpc/JsonRPC.xd.js
@@ -0,0 +1,72 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.rpc.JsonRPC"],
+["require", "dojox.rpc.Service"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.rpc.JsonRPC"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.rpc.JsonRPC"] = true;
+dojo.provide("dojox.rpc.JsonRPC");
+dojo.require("dojox.rpc.Service");
+
+
+
+ function jsonRpcEnvelope(version){
+ return {
+ serialize: function(smd, method, data, options){
+ //not converted to json it self. This will be done, if
+ //appropriate, at the transport level
+
+ var d = {
+ id: this._requestId++,
+ method: method.name,
+ params: data
+ };
+ if(version){
+ d.jsonrpc = version;
+ }
+ return {
+ data: dojo.toJson(d),
+ handleAs:'json',
+ contentType: 'application/json',
+ transport:"POST"
+ };
+ },
+
+ deserialize: function(obj){
+ if ('Error' == obj.name){
+ obj = dojo.fromJson(obj.responseText);
+ }
+ if(obj.error) {
+ var e = new Error(obj.error.message || obj.error);
+ e._rpcErrorObject = obj.error;
+ return e;
+ }
+ return obj.result;
+ }
+ };
+ }
+ dojox.rpc.envelopeRegistry.register(
+ "JSON-RPC-1.0",
+ function(str){
+ return str == "JSON-RPC-1.0";
+ },
+ dojo.mixin({namedParams:false},jsonRpcEnvelope()) // 1.0 will only work with ordered params
+ );
+
+ dojox.rpc.envelopeRegistry.register(
+ "JSON-RPC-2.0",
+ function(str){
+ return str == "JSON-RPC-2.0";
+ },
+ jsonRpcEnvelope("2.0")
+ );
+
+
+}
+
+}};});