db init
This commit is contained in:
parent
59355bedfb
commit
0daad86261
|
@ -15,11 +15,17 @@
|
||||||
|
|
||||||
|
|
||||||
(define (make-db)
|
(define (make-db)
|
||||||
(let ((*db '()))
|
(let ((*db '())
|
||||||
|
((*prime 1)))
|
||||||
|
|
||||||
(define (add key value)
|
(define (add key value)
|
||||||
(set! *db (append *db (list (list key value))))
|
(let ((*hash (list (list key value))))
|
||||||
)
|
(nextprime)
|
||||||
|
(do ((i 0 (+ i 1)))
|
||||||
|
((eq? i *prime)
|
||||||
|
(set! *db (append *db *hash)))
|
||||||
|
(set! *db (append *db '(0 0))))
|
||||||
|
))
|
||||||
|
|
||||||
(define (lookup key)
|
(define (lookup key)
|
||||||
(let ((*result #f))
|
(let ((*result #f))
|
||||||
|
@ -30,6 +36,23 @@
|
||||||
(set! *result (cadr (list-ref *db i))))
|
(set! *result (cadr (list-ref *db i))))
|
||||||
)))
|
)))
|
||||||
|
|
||||||
|
(define (key->hash key)
|
||||||
|
(let ((*hash 0))
|
||||||
|
(do ((i 0 (+ i 1)))
|
||||||
|
((= i (string-length key))
|
||||||
|
*hash)
|
||||||
|
(set! *hash (+ *hash (char->ascii (string-ref key i)))))
|
||||||
|
))
|
||||||
|
|
||||||
|
(define (nextprime)
|
||||||
|
(set! *prime (getprime-rec *prime)))
|
||||||
|
|
||||||
|
(define (getprime-rec prime)
|
||||||
|
(if (or (/ prime 2) (/ prime 3) (/ prime 5) (/ prime 7) (/ prime 10))
|
||||||
|
(getpreime-rec (+ prime 1))))
|
||||||
|
|
||||||
|
(define (integer->ascii
|
||||||
|
|
||||||
(define (dispatch msg)
|
(define (dispatch msg)
|
||||||
(cond ((eq? msg 'add) add)
|
(cond ((eq? msg 'add) add)
|
||||||
((eq? msg 'lookup) lookup)
|
((eq? msg 'lookup) lookup)
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
,load big-scheme
|
,load big-scheme
|
||||||
,open byte-vectors
|
,open byte-vectors
|
||||||
|
,open ascii
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
(define-interface cavespider-interface
|
(define-interface hawk-dns-server-interface
|
||||||
(export
|
(export
|
||||||
make-server
|
make-server
|
||||||
make-server-dns))
|
make-server-dns))
|
||||||
|
|
||||||
(define-structure cavespider
|
(define-structure
|
||||||
cavespider-interface
|
hawk-dns-server-interface
|
||||||
(open scheme)
|
(open scheme)
|
||||||
(files load file-util hash-util html-util string-util util client))
|
(files load util server db server-dns))
|
||||||
|
|
Loading…
Reference in New Issue