Add CALLBACK-FUNCTOR that allows the call back arbitrary functions
(in conjunction with make-annotated-callback)
This commit is contained in:
parent
a9f5c6ffa7
commit
61c5cf4246
|
@ -1,5 +1,11 @@
|
||||||
;; Copyright 2002, 2003 Andreas Bernauer
|
;; Copyright 2002, 2003 Andreas Bernauer
|
||||||
|
|
||||||
|
;; With callbacks you can create special links that are associated
|
||||||
|
;; with a function. If the user clicks on the special callback link,
|
||||||
|
;; the send-html/suspend won't return, but the function will be called
|
||||||
|
;; instead. Note: It is not sensible to create callbacks on top level,
|
||||||
|
;; as they contain continuations. You have to create a new callback
|
||||||
|
;; every time you want to use it (inside a function).
|
||||||
(define (make-callback function)
|
(define (make-callback function)
|
||||||
(call-with-current-continuation
|
(call-with-current-continuation
|
||||||
(lambda (exit)
|
(lambda (exit)
|
||||||
|
@ -22,4 +28,8 @@
|
||||||
unexpected return values from website"))))))
|
unexpected return values from website"))))))
|
||||||
(callback (make-callback dispatch)))
|
(callback (make-callback dispatch)))
|
||||||
(lambda args
|
(lambda args
|
||||||
(annotated-address callback args))))
|
(annotated-address callback args))))
|
||||||
|
|
||||||
|
(define callback-functor
|
||||||
|
(lambda (req proc . args)
|
||||||
|
(apply proc (cons req args))))
|
||||||
|
|
Loading…
Reference in New Issue