Coverage report: /development/source/library/com/dydra/gitlab/dydra-cgi/ffi/lisp/rdfcache/shard.lisp

KindCoveredAll%
expression1429 48.3
branch24 50.0
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 (in-package :rdfcache)
2
 
3
 ;; Shard API
4
 
5
 (defun attach () (%%attach))
6
 
7
 (defun detach () (%%detach))
8
 
9
 (defun fetch-term (term-number term-pointer)
10
   "Given a persistent term number copy its fields into the provided term structure."
11
   (declare (type fixnum term-number)
12
            (type foreign-pointer term-pointer))
13
   (assert (typep term-number '(integer 1)))
14
   (with-checked-pointer (term-pointer)
15
     (with-checked-errno-result "rdfcache_ffi_fetch_term"
16
       (%%cursor-fetch-term term-number term-pointer))))
17
 
18
 (defun lookup-term-number (term-pointer)
19
   (declare (type foreign-pointer term-pointer))
20
   (with-checked-pointer (term-pointer)
21
     (let ((term-number (with-checked-long-result "rdfcache_ffi_lookup_term_number"
22
                          (%%lookup-term-number term-pointer))))
23
       (declare (type integer term-number))
24
       (if (zerop term-number) nil term-number))))
25
 
26
 (defun ephemeral-term-number-p (number)
27
   (any-ephemerals? number))
28
 
29
 (defun persistent-term-number-p (number)
30
   (> number 0))
31
 
32
 ;;; Shard API: Macros
33
 
34
 (defmacro fetch-term-type (term-number)
35
   (let ((term-var (gensym)))
36
     ;; TODO: optimize this:
37
     `(cffi:with-foreign-object (,term-var '(:struct rdfcache::term))
38
        (rdfcache:fetch-term ,term-number ,term-var)
39
        (rdfcache:term-type ,term-var))))