File: berkeley.scm

package info (click to toggle)
guile-db 0.1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 80 kB
  • ctags: 30
  • sloc: ansic: 287; makefile: 71; lisp: 55
file content (33 lines) | stat: -rw-r--r-- 689 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
(if (not (defined? 'db-open))
    (begin
	(dynamic-call "scm_init_db4_3" (dynamic-link "/usr/lib/guile/libguiledb4.3.so"))))

(define-module (database berkeley))

(define (data->string data)
    (with-output-to-string
	(lambda ()
	    (write data))))

(define (string->data string)
    (with-input-from-string
	string
	(lambda ()
	    (read))))

(define-public (db-put handle key data)
    (let (
	    (k (data->string key))
	    (d (data->string data)))
	(db-put-text handle k d)))

(define-public (db-get handle key)
    (let (
	    (k (data->string key)))
	(string->data (db-get-text k))))

(define-public (db-del handle key)
    (let (
	    (k (data->string key)))
	(db-del-text k)))