(index ("display-content-type-&c." 0) ("display-content-type-&c." 0) ("display-status-&c." 809) ("display-status-&c." 809) ("display-status-&c." 809) ("query-client-any" 1736) ("query-client-any" 1736) ("query-client-all" 2335) ("query-client-all" 2335) ("query-server-any" 2932) ("query-server-any" 2932) ("query-server-all" 3524) ("query-server-all" 3524) ("query-any" 4114) ("query-any" 4114) ("query-all" 4675) ("query-all" 4675) ("call-with-dynamic-fastcgi-query" 5233) ("call-with-cgi-query" 7097))
(def (sig (procedure "(display-content-type-&c.) → unspecified" (id display-content-type-&c.)) (procedure "(display-content-type-&c. content-type-&c.) → unspecified" (id display-content-type-&c.))) (p "Write the content-type headers and e.g. XML prolog (if necessary); do not, however, write the status (see " (tt "display-status") " and " (tt "display-status-&c.") ").") (p "Valid content-types are " (tt "xhtml") ", " (tt "html") ", " (tt "text") ", " (tt "json") ", " (tt "png") ", " (tt "xml") ".") (dl (dt (tt "content-type-&c.")) (dd "The content-type-and--prolog, e.g. " (tt "xhtml"))) (highlight scheme "(define display-content-type-&c.\n  (case-lambda\n    (() (display-content-type-&c. (default-content-type-&c.)))\n    ((content-type-&c.) ((alist-ref content-type-&cs. content-type-&c.)))))"))
(def (sig (procedure "(display-status-&c.) → unspecified" (id display-status-&c.)) (procedure "(display-status-&c. status) → unspecified" (id display-status-&c.)) (procedure "(display-status-&c. status content-type . rest) → unspecified" (id display-status-&c.))) (p "Display the status, content-type and prolog.") (dl (dt (tt "status")) (dd "Status code, e.g. " (tt "status-no-content") " or 204") (dt (tt "content-type")) (dd "Content-type, e.g. " (tt "xhtml")) (dt (tt "rest")) (dd "Optional arguments to the status, e.g. " (tt "location") " in the case of 300")) (highlight scheme "(define display-status-&c.\n  (case-lambda\n    (() (display-status-&c. (default-status)))\n    ((status) (display-status-&c. status (default-content-type)))\n    ((status content-type . rest)\n     (display-status status)\n     (apply (alist-ref/default statuses status void) rest)\n     (display-content-type-&c. content-type))))"))
(def (sig (procedure "(query-client-any query key) → string" (id query-client-any)) (procedure "(query-client-any query key default) → string" (id query-client-any))) (p "Return the first client parameter (e.g. {get,post,cookie}-parameter) corresponding to the key.") (dl (dt (tt "key")) (dd "The key whose value to extract") (dt (tt "default")) (dd "A default value if " (tt "key") " doesn't exist")) (highlight scheme "(define query-client-any\n  (case-lambda\n    ((query key) (alist-any (query-client query) key))\n    ((query key default) (alist-any (query-client query) key default))))"))
(def (sig (procedure "(query-client-all query key) → list" (id query-client-all)) (procedure "(query-client-all query key default) → list" (id query-client-all))) (p "Return a list of client parameters (e.g. {get,post,cookie}-parameters) corresponding to the key.") (dl (dt (tt "key")) (dd "The key whose value to extract") (dt (tt "default")) (dd "A default value if " (tt "key") " doesn't exist")) (highlight scheme "(define query-client-all\n  (case-lambda\n    ((query key) (alist-all (query-client query) key))\n    ((query key default) (alist-all (query-client query) key default))))"))
(def (sig (procedure "(query-server-any query key) → string" (id query-server-any)) (procedure "(query-server-any query key default) → string" (id query-server-any))) (p "Return the first client parameter (e.g. environment-variable) corresponding to the key.") (dl (dt (tt "key")) (dd "The key whose value to extract") (dt (tt "default")) (dd "A default value if " (tt "key") " doesn't exist")) (highlight scheme "(define query-server-any\n  (case-lambda\n    ((query key) (alist-any (query-server query) key))\n    ((query key default) (alist-any (query-server query) key default))))"))
(def (sig (procedure "(query-server-all query key) → list" (id query-server-all)) (procedure "(query-server-all query key default) → list" (id query-server-all))) (p "Return a list of client parameters (e.g. environment-variables) corresponding to the key.") (dl (dt (tt "key")) (dd "The key whose value to extract") (dt (tt "default")) (dd "A default value if " (tt "key") " doesn't exist")) (highlight scheme "(define query-server-all\n  (case-lambda\n    ((query key) (alist-all (query-server query) key))\n    ((query key default) (alist-all (query-server query) key default))))"))
(def (sig (procedure "(query-any query key) → string" (id query-any)) (procedure "(query-any query key default) → string" (id query-any))) (p "Return the first client or server parameter (see above) corresponding to the key.") (dl (dt (tt "key")) (dd "The key whose value to extract") (dt (tt "default")) (dd "A default value if " (tt "key") " doesn't exist")) (highlight scheme "(define query-any\n  (case-lambda\n    ((query key) (alist-any (query-promiscuous query) key))\n    ((query key default) (alist-any (query-promiscuous query) key default))))"))
(def (sig (procedure "(query-all query key) → list" (id query-all)) (procedure "(query-all query key default) → list" (id query-all))) (p "Return a list of client or server parameters (see above) corresponding to the key.") (dl (dt (tt "key")) (dd "The key whose value to extract") (dt (tt "default")) (dd "A default value if " (tt "key") " doesn't exist")) (highlight scheme "(define query-all\n  (case-lambda\n    ((query key) (alist-all (query-promiscuous query) key))\n    ((query key default) (alist-all (query-promiscuous query) key default))))"))
(def (sig (procedure "(call-with-dynamic-fastcgi-query quaerendum) → unspecified" (id call-with-dynamic-fastcgi-query))) (p "Start a dynamic FastCGI server where output is bound to stdout; and where a monadic function taking a query-record is called for every request.") (dl (dt (tt "quaerendum")) (dd "A monadic function receiving a query parameter")) (highlight scheme "(define (call-with-dynamic-fastcgi-query quaerendum)\n  (fcgi-dynamic-server-accept-loop\n    (lambda (in out err env)\n      (let ((environment\n              (map (match-lambda\n                     ((key . value) (cons (env-string->symbol key) value)))\n                   (env)))\n            (cookies\n              (form-urldecode\n                (let ((cookies\n                        (string-delete\n                          char-set:whitespace\n                          (env \"HTTP_COOKIE\" \"\"))))\n                  (and (not (string-null? cookies)) cookies))))\n            (cookies2\n              (form-urldecode\n                (let ((cookies\n                        (string-delete\n                          char-set:whitespace\n                          (env \"HTTP_COOKIE2\" \"\"))))\n                  (and (not (string-null? cookies)) cookies))))\n            (post-data (form-urldecode (fcgi-get-post-data in env)))\n            (query (form-urldecode\n                     (let ((query (env \"QUERY_STRING\")))\n                       (and (not (string-null? query)) query)))))\n        (parameterize\n          ((current-output-port\n             (make-output-port (lambda (scribendum) (out scribendum)) void))\n           (current-error-port\n             (make-output-port (lambda (errandum) (err errandum)) void)))\n          (quaerendum\n            (make-query\n              environment\n              (append cookies cookies2 post-data query))))))))"))
(def (sig (procedure "(call-with-cgi-query quaerendum) → unspecified" (id call-with-cgi-query))) (p "Gather parameters (including post-variables, query-variables, cookies, server-variables) into an association-list when called as a CGI program.") (dl (dt (tt "quaerendum")) (dd "A monadic function receiving a query parameter")) (highlight scheme "(define (call-with-cgi-query quaerendum)\n  (let ((environment\n          (alist-map\n            (lambda (key value) (cons (env-string->symbol key) value))\n            (get-environment-variables))))\n    (quaerendum\n      (make-query\n        environment\n        (remove-null-artifacts\n          (append\n            (form-urldecode-environment environment 'http-cookie)\n            (form-urldecode-environment environment 'http-cookie2)\n            (form-urldecode-environment environment 'query-string)\n            (form-urldecode-with-separator (read-all))))))))"))
