ks-close added.
This commit is contained in:
@@ -15,3 +15,4 @@ compiled/
|
|||||||
# Dependency tracking files
|
# Dependency tracking files
|
||||||
*.dep
|
*.dep
|
||||||
|
|
||||||
|
/*.bak
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(provide ks-open
|
(provide ks-open
|
||||||
|
ks-close
|
||||||
ks-set!
|
ks-set!
|
||||||
ks-get
|
ks-get
|
||||||
ks-drop!
|
ks-drop!
|
||||||
@@ -24,6 +25,12 @@
|
|||||||
#:transparent
|
#:transparent
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(define keystore*? keystore?)
|
||||||
|
(set! keystore? (λ (ks)
|
||||||
|
(and (keystore*? ks)
|
||||||
|
(connection? (keystore-dbh ks))
|
||||||
|
(connected? (keystore-dbh ks)))))
|
||||||
|
|
||||||
(define/contract (ks-open file)
|
(define/contract (ks-open file)
|
||||||
(-> (or/c path? string? symbol?) keystore?)
|
(-> (or/c path? string? symbol?) keystore?)
|
||||||
(let ((path (if (symbol? file)
|
(let ((path (if (symbol? file)
|
||||||
@@ -34,6 +41,12 @@
|
|||||||
(query-exec dbh "CREATE INDEX IF NOT EXISTS keystore_idx on keystore(str_key);")
|
(query-exec dbh "CREATE INDEX IF NOT EXISTS keystore_idx on keystore(str_key);")
|
||||||
(make-keystore file path dbh))))
|
(make-keystore file path dbh))))
|
||||||
|
|
||||||
|
(define/contract (ks-close ksh)
|
||||||
|
(-> keystore? boolean?)
|
||||||
|
(let ((dbh (keystore-dbh ksh)))
|
||||||
|
(disconnect dbh)
|
||||||
|
#t))
|
||||||
|
|
||||||
(define/contract (ks-set! ksh key value)
|
(define/contract (ks-set! ksh key value)
|
||||||
(-> keystore? any/c any/c boolean?)
|
(-> keystore? any/c any/c boolean?)
|
||||||
(ks-set!* (keystore-dbh ksh) (value->string key) (format "~a" key) (value->string value)))
|
(ks-set!* (keystore-dbh ksh) (value->string key) (format "~a" key) (value->string value)))
|
||||||
|
|||||||
Reference in New Issue
Block a user