15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|
;; You should have received a copy of the GNU General Public License
;; along with Megatest. If not, see <http://www.gnu.org/licenses/>.
;;======================================================================
;; dbstruct
;;======================================================================
;;
;; -path-|-megatest.db
;; |-db-|-main.db
;; |-monitor.db
;; |-sdb.db
;; |-fdb.db
;; |-1.db
;; |-<N>.db
;;
;;
;; Accessors for a dbstruct
;;
;; (define-inline (dbr:dbstruct-main vec) (vector-ref vec 0)) ;; ( db path )
;; (define-inline (dbr:dbstruct-strdb vec) (vector-ref vec 1)) ;; ( db path )
;; (define-inline (dbr:dbstruct-path vec) (vector-ref vec 2))
;; (define-inline (dbr:dbstruct-local vec) (vector-ref vec 3))
;; (define-inline (dbr:dbstruct-rundb vec) (vector-ref vec 4)) ;; ( db path )
;; (define-inline (dbr:dbstruct-inmem vec) (vector-ref vec 5)) ;; ( db #f )
;; (define-inline (dbr:dbstruct-mtime vec) (vector-ref vec 6))
;; (define-inline (dbr:dbstruct-rtime vec) (vector-ref vec 7))
;; (define-inline (dbr:dbstruct-stime vec) (vector-ref vec 8))
;; (define-inline (dbr:dbstruct-inuse vec) (vector-ref vec 9))
;; (define-inline (dbr:dbstruct-refdb vec) (vector-ref vec 10)) ;; ( db path )
;; (define-inline (dbr:dbstruct-locdbs vec) (vector-ref vec 11))
;; (define-inline (dbr:dbstruct-olddb vec) (vector-ref vec 12)) ;; ( db path )
;; ;; (define-inline (dbr:dbstruct-main-path vec) (vector-ref vec 13))
;; ;; (define-inline (dbr:dbstruct-rundb-path vec) (vector-ref vec 14))
;; ;; (define-inline (dbr:dbstruct-run-id vec) (vector-ref vec 13))
;;
;; (define-inline (dbr:dbstruct-main-set! vec val)(vector-set! vec 0 val))
;; (define-inline (dbr:dbstruct-strdb-set! vec val)(vector-set! vec 1 val))
;; (define-inline (dbr:dbstruct-path-set! vec val)(vector-set! vec 2 val))
;; (define-inline (dbr:dbstruct-local-set! vec val)(vector-set! vec 3 val))
;; (define-inline (dbr:dbstruct-rundb-set! vec val)(vector-set! vec 4 val))
;; (define-inline (dbr:dbstruct-inmem-set! vec val)(vector-set! vec 5 val))
;; (define-inline (dbr:dbstruct-mtime-set! vec val)(vector-set! vec 6 val))
;; (define-inline (dbr:dbstruct-rtime-set! vec val)(vector-set! vec 7 val))
;; (define-inline (dbr:dbstruct-stime-set! vec val)(vector-set! vec 8 val))
;; (define-inline (dbr:dbstruct-inuse-set! vec val)(vector-set! vec 9 val))
;; (define-inline (dbr:dbstruct-refdb-set! vec val)(vector-set! vec 10 val))
;; (define-inline (dbr:dbstruct-locdbs-set! vec val)(vector-set! vec 11 val))
;; (define-inline (dbr:dbstruct-olddb-set! vec val)(vector-set! vec 12 val))
;; (define-inline (dbr:dbstruct-main-path-set! vec val)(vector-set! vec 13 val))
;; (define-inline (dbr:dbstruct-rundb-path-set! vec val)(vector-set! vec 14 val))
;;
; (define-inline (dbr:dbstruct-run-id-set! vec val)(vector-set! vec 13 val))
;; constructor for dbstruct
;;
;; (define (make-dbr:dbstruct #!key (path #f)(local #f))
;; (let ((v (make-vector 15 #f)))
;; (dbr:dbstruct-path-set! v path)
;; (dbr:dbstruct-local-set! v local)
;; (dbr:dbstruct-locdbs-set! v (make-hash-table))
;; v))
;; Returns the database for a particular run-id fron the dbstruct:localdbs
;;
(define (dbr:dbstruct-localdb v run-id)
(hash-table-ref/default (dbr:dbstruct-locdbs v) run-id #f))
(define (dbr:dbstruct-localdb-set! v run-id db)
|