minor improvements; start working on: uid stuff <- container registration

This commit is contained in:
Helmut Merz 2024-08-04 21:29:55 +02:00
parent 5678483a50
commit 98d21061f5
3 changed files with 9 additions and 2 deletions

View file

@ -18,6 +18,7 @@
(defun make-container (storage) (defun make-container (storage)
(make-instance 'tracking:container (make-instance 'tracking:container
:item-class 'pmsg :item-class 'pmsg
:short-name :msg
:table-name :messages :table-name :messages
:index-factory #'indexes :index-factory #'indexes
:force-insert-when :changed :force-insert-when :changed

View file

@ -10,13 +10,15 @@
(:alx :alexandria) (:alx :alexandria)
(:jzon :com.inuoe.jzon)) (:jzon :com.inuoe.jzon))
(:export #:track #:trackid #:timestamp (:export #:track #:trackid #:timestamp
#:container #:table-name #:storage #:make-item #:container #:make-container #:table-name #:storage #:make-item
#:get-track #:query-last #:query-one #:query #:get-track #:query-last #:query-one #:query
#:save #:insert #:update #:save #:insert #:update
#:create-indexes #:create-table)) #:create-indexes #:create-table))
(in-package :scopes/storage/tracking) (in-package :scopes/storage/tracking)
(defvar *containers* (make-hash-table))
(defvar *build-track-data* #'alx:hash-table-plist) (defvar *build-track-data* #'alx:hash-table-plist)
(defclass track (shape:record) (defclass track (shape:record)
@ -33,6 +35,7 @@
(defclass container () (defclass container ()
((item-class :reader item-class :initarg :item-class :initform 'track) ((item-class :reader item-class :initarg :item-class :initform 'track)
(short-name :reader short-name :initarg :short-name)
(table-name :reader table-name :initarg :table-name :initform :tracks) (table-name :reader table-name :initarg :table-name :initform :tracks)
(index-factory :reader index-factory :initarg :index-factory (index-factory :reader index-factory :initarg :index-factory
:initform #'default-indexes) :initform #'default-indexes)
@ -40,6 +43,9 @@
:initarg :force-insert-when :initform nil) :initarg :force-insert-when :initform nil)
(storage :reader storage :initarg :storage))) (storage :reader storage :initarg :storage)))
(defun make-container (st)
(make-instance 'container :short-name :tr :storage st))
(defun item-head-fields (cont) (defun item-head-fields (cont)
(shape:head-fields (make-instance (item-class cont)))) (shape:head-fields (make-instance (item-class cont))))

View file

@ -44,7 +44,7 @@
(deftest test-track (ctx) (deftest test-track (ctx)
(let ((st (storage:storage ctx)) (let ((st (storage:storage ctx))
cont tr tr2) cont tr tr2)
(setf cont (make-instance 'tracking:container :storage st)) (setf cont (tracking:make-container st))
(storage:drop-table st :tracks) (storage:drop-table st :tracks)
(tracking:create-table cont) (tracking:create-table cont)
(setf tr (tracking:make-item cont :t01 :john)) (setf tr (tracking:make-item cont :t01 :john))