Created
March 19, 2010 17:52
-
-
Save minimal/337961 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(def run-rpc | |
(fn* | |
([arg03319 arg13320] | |
(let* | |
[args | |
nil | |
socket | |
nil | |
failuren3322 | |
(fn* | |
([args socket] | |
(let* | |
[args | |
nil | |
socket | |
nil | |
failuren3332 | |
(fn* | |
([args socket] | |
(let* | |
[] | |
(let* | |
[matching3345 arg03319] | |
(let* | |
[matching3346 arg13320] | |
(throw | |
(new | |
java.lang.IllegalArgumentException | |
"Failed to match arguments")))))))] | |
(let* | |
[matching3335 arg03319] | |
(if (map? matching3335) | |
(let* | |
[keyn3336 "_action"] | |
(if (contains? matching3335 keyn3336) | |
(let* | |
[valuen3337 (get matching3335 keyn3336)] | |
(if (= valuen3337 "stop-queue") | |
(let* | |
[keyn3338 "args"] | |
(if (contains? matching3335 keyn3338) | |
(let* | |
[valuen3339 | |
(get matching3335 keyn3338)] | |
(let* | |
[args valuen3339] | |
(let* | |
[matching3340 arg13320] | |
(let* | |
[socket matching3340] | |
(do (stop-queue args socket)))))) | |
(failuren3332 args socket))) | |
(failuren3332 args socket))) | |
(failuren3332 args socket))) | |
(failuren3332 args socket))))))] | |
(let* | |
[matching3325 arg03319] | |
(if (map? matching3325) | |
(let* | |
[keyn3326 "_action"] | |
(if (contains? matching3325 keyn3326) | |
(let* | |
[valuen3327 (get matching3325 keyn3326)] | |
(if (= valuen3327 "start-queue") | |
(let* | |
[keyn3328 "args"] | |
(if (contains? matching3325 keyn3328) | |
(let* | |
[valuen3329 (get matching3325 keyn3328)] | |
(let* | |
[args valuen3329] | |
(let* | |
[matching3330 arg13320] | |
(let* | |
[socket matching3330] | |
(do (start-queue args socket)))))) | |
(failuren3322 args socket))) | |
(failuren3322 args socket))) | |
(failuren3322 args socket))) | |
(failuren3322 args socket))))))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; matchure function matching | |
(defn-match run-rpc | |
"Use matchure to handle actions | |
- XXX: on clojure 1.2 read-json uses :keywords instead of strings" | |
([{"_action" "start-queue", "args" ?args} ?socket] | |
(start-queue args socket)) | |
([{"_action" "stop-queue", "args" ?args} ?socket] | |
(stop-queue args socket))) | |
;; Old | |
(defn get-stuff | |
"Get some stuff" | |
[args websocket]) | |
(def rpc-methods | |
{"get" get-stuff | |
"put" put-stuff}) | |
(defn handle-rpc | |
"Dispatch a websocket message to the correct method" | |
[action args websocket] | |
((rpc-methods action) args websocket)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment