53 lines
2.2 KiB
Scheme
53 lines
2.2 KiB
Scheme
(module configuration-structures mzscheme
|
|
(require (only (lib "unit.ss") unit?)
|
|
(lib "contract.ss")
|
|
(lib "url.ss" "net"))
|
|
(require "configuration-table-structs.ss"
|
|
"../response-structs.ss")
|
|
|
|
; configuration is now a unit. See sig.ss
|
|
; XXX contract
|
|
(define configuration?
|
|
unit?)
|
|
|
|
; host = (make-host (listof str) sym string
|
|
; passwords responders timeouts paths)
|
|
(define-struct host (indices log-format log-path passwords responders timeouts paths))
|
|
|
|
; passwords = (listof (list* relm:str protected-dir-regexp:str
|
|
; (listof (list user:sym password:str))))
|
|
|
|
; responders = (make-responders (url tst -> response)
|
|
; (url tst -> response)
|
|
; (url (cons sym str) -> response)
|
|
; response
|
|
; response
|
|
; (url -> response)
|
|
; response
|
|
; response)
|
|
(define-struct responders
|
|
(servlet servlet-loading authentication servlets-refreshed passwords-refreshed file-not-found protocol collect-garbage))
|
|
|
|
(provide ; all-from
|
|
(struct timeouts (default-servlet password servlet-connection file-per-byte file-base))
|
|
(struct paths (host-base log htdocs mime-types servlet)))
|
|
(provide/contract
|
|
[configuration? (any/c . -> . boolean?)]
|
|
[struct host
|
|
([indices (listof string?)]
|
|
[log-format symbol?]
|
|
[log-path (or/c false/c path-string?)]
|
|
[passwords (or/c false/c path-string?)]
|
|
[responders responders?]
|
|
[timeouts timeouts?]
|
|
[paths paths?])]
|
|
[struct responders
|
|
([servlet (url? any/c . -> . response?)]
|
|
[servlet-loading (url? any/c . -> . response?)]
|
|
[authentication (url? (cons/c symbol? string?) . -> . response?)]
|
|
[servlets-refreshed (-> response?)]
|
|
[passwords-refreshed (-> response?)]
|
|
[file-not-found (url? . -> . response?)]
|
|
[protocol (url? . -> . response?)]
|
|
[collect-garbage (-> response?)])]))
|