Factor out SURFLET-RESPONSE object
This commit is contained in:
parent
592baf7c6a
commit
39f7addaf9
|
@ -17,6 +17,7 @@
|
||||||
;; Responses from SUrflets
|
;; Responses from SUrflets
|
||||||
(define-interface surflet-handler/responses-interface
|
(define-interface surflet-handler/responses-interface
|
||||||
(export make-surflet-response
|
(export make-surflet-response
|
||||||
|
valid-surflet-response-data?
|
||||||
surflet-response?
|
surflet-response?
|
||||||
surflet-response-status
|
surflet-response-status
|
||||||
surflet-response-content-type
|
surflet-response-content-type
|
||||||
|
@ -423,7 +424,6 @@
|
||||||
(surflet-handler/resume-url surflet-handler/resume-url-interface)
|
(surflet-handler/resume-url surflet-handler/resume-url-interface)
|
||||||
(surflet-handler/admin surflet-handler/admin-interface)
|
(surflet-handler/admin surflet-handler/admin-interface)
|
||||||
(surflet-handler/primitives surflet-handler/primitives-interface)
|
(surflet-handler/primitives surflet-handler/primitives-interface)
|
||||||
(surflet-handler/responses surflet-handler/responses-interface)
|
|
||||||
(surflets/sessions surflets/sessions-interface)
|
(surflets/sessions surflets/sessions-interface)
|
||||||
(surflets/continuations surflets/continuations-interface)
|
(surflets/continuations surflets/continuations-interface)
|
||||||
(surflets/error surflets/error-interface)
|
(surflets/error surflets/error-interface)
|
||||||
|
@ -447,6 +447,7 @@
|
||||||
srfi-14 ;CHAR-SET:DIGIT
|
srfi-14 ;CHAR-SET:DIGIT
|
||||||
srfi-27 ;random numbers
|
srfi-27 ;random numbers
|
||||||
surflet-requests ;requests for surflets
|
surflet-requests ;requests for surflets
|
||||||
|
surflet-responses ;responses from surflets
|
||||||
sxml-to-html ;SXML->HTML
|
sxml-to-html ;SXML->HTML
|
||||||
tables ;HASH-TABLES
|
tables ;HASH-TABLES
|
||||||
thread-cells ;THREAD-CELL et al.
|
thread-cells ;THREAD-CELL et al.
|
||||||
|
@ -542,6 +543,14 @@
|
||||||
httpd-requests)
|
httpd-requests)
|
||||||
(files surflet-request))
|
(files surflet-request))
|
||||||
|
|
||||||
|
(define-structures
|
||||||
|
((surflet-handler/responses surflet-handler/responses-interface)
|
||||||
|
(surflet-responses surflet-handler/responses-interface))
|
||||||
|
(open scheme-with-scsh
|
||||||
|
define-record-types)
|
||||||
|
(files surflet-response))
|
||||||
|
|
||||||
|
|
||||||
;; With the help of TYPED-OPTIONALS you can define a function
|
;; With the help of TYPED-OPTIONALS you can define a function
|
||||||
;; like (make-submit-button [string] args)
|
;; like (make-submit-button [string] args)
|
||||||
(define-structure typed-optionals typed-optionals-interface
|
(define-structure typed-optionals typed-optionals-interface
|
||||||
|
|
|
@ -725,37 +725,6 @@
|
||||||
(define set-options-make-session-timeout-text
|
(define set-options-make-session-timeout-text
|
||||||
(make-fluid-setter set-surflet-options-make-session-timeout-text!))
|
(make-fluid-setter set-surflet-options-make-session-timeout-text!))
|
||||||
|
|
||||||
;;; SURFLET-RESPONSE: Surflets are expected to return this object type.
|
|
||||||
;;; STATUS is the status code, an exact integer. See httpd/response.scm
|
|
||||||
;;; e.g. (status-code ok)
|
|
||||||
;;; CONTENT-TYPE is a string, most probably "text/html".
|
|
||||||
;;; HEADERS is a (maybe empty) list of pairs of (string or symbol);
|
|
||||||
;;; Additional headers to send, e.g. '(("Cache-Control" . "no-cache")) or
|
|
||||||
;;; '((Cache-Control . "no-cache")) etc.
|
|
||||||
;;; DATA is either
|
|
||||||
;;; * a string
|
|
||||||
;;; * a list of strings
|
|
||||||
;;; This list maybe extended to vectors later.
|
|
||||||
(define-record-type surflet-response :surflet-response
|
|
||||||
(make-surflet-response status content-type headers data)
|
|
||||||
surflet-response?
|
|
||||||
(status surflet-response-status)
|
|
||||||
(content-type surflet-response-content-type)
|
|
||||||
(headers surflet-response-headers)
|
|
||||||
(data surflet-response-data))
|
|
||||||
|
|
||||||
;; Allowed type for the data field.
|
|
||||||
(define (valid-surflet-response-data? data)
|
|
||||||
(or (string? data) (list? data)))
|
|
||||||
|
|
||||||
;; For debug purposes
|
|
||||||
(define (surflet-response->string surflet-response)
|
|
||||||
(format #f "#{SUrflet-response Status: ~a Content-Type: ~s Headers: ~s~%~s~%"
|
|
||||||
(surflet-response-status surflet-response)
|
|
||||||
(surflet-response-content-type surflet-response)
|
|
||||||
(surflet-response-headers surflet-response)
|
|
||||||
(surflet-response-data surflet-response)))
|
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;; RANDOM SOURCE
|
;;; RANDOM SOURCE
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
;;; SURFLET-RESPONSE: Surflets are expected to return this object type.
|
||||||
|
;;; STATUS is the status code, an exact integer. See httpd/response.scm
|
||||||
|
;;; e.g. (status-code ok)
|
||||||
|
;;; CONTENT-TYPE is a string, most probably "text/html".
|
||||||
|
;;; HEADERS is a (maybe empty) list of pairs of (string or symbol);
|
||||||
|
;;; Additional headers to send, e.g. '(("Cache-Control" . "no-cache")) or
|
||||||
|
;;; '((Cache-Control . "no-cache")) etc.
|
||||||
|
;;; DATA is either
|
||||||
|
;;; * a string
|
||||||
|
;;; * a list of strings
|
||||||
|
;;; This list maybe extended to vectors later.
|
||||||
|
(define-record-type surflet-response :surflet-response
|
||||||
|
(make-surflet-response status content-type headers data)
|
||||||
|
surflet-response?
|
||||||
|
(status surflet-response-status)
|
||||||
|
(content-type surflet-response-content-type)
|
||||||
|
(headers surflet-response-headers)
|
||||||
|
(data surflet-response-data))
|
||||||
|
|
||||||
|
;; Allowed type for the data field.
|
||||||
|
(define (valid-surflet-response-data? data)
|
||||||
|
(or (string? data) (list? data)))
|
||||||
|
|
||||||
|
;; For debug purposes
|
||||||
|
(define (surflet-response->string surflet-response)
|
||||||
|
(format #f "#{SUrflet-response Status: ~a Content-Type: ~s Headers: ~s~%~s~%"
|
||||||
|
(surflet-response-status surflet-response)
|
||||||
|
(surflet-response-content-type surflet-response)
|
||||||
|
(surflet-response-headers surflet-response)
|
||||||
|
(surflet-response-data surflet-response)))
|
||||||
|
|
Loading…
Reference in New Issue