tracking: register container instance after creation, item-head-fields as slot

This commit is contained in:
Helmut Merz 2024-08-06 12:18:24 +02:00
parent 98d21061f5
commit 989a380a53

View file

@ -35,19 +35,24 @@
(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) (short-name :reader short-name :initarg :short-name :initform :track)
(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)
(force-insert-when :reader force-insert-when (force-insert-when :reader force-insert-when
:initarg :force-insert-when :initform nil) :initarg :force-insert-when :initform nil)
(storage :reader storage :initarg :storage))) (storage :reader storage :initarg :storage)
(item-head-fields :accessor item-head-fields)))
(defun make-container (st) (defun make-container (st)
(make-instance 'container :short-name :tr :storage st)) (make-instance 'container :short-name :trk :storage st))
(defun item-head-fields (cont) (defmethod initialize-instance :after ((cont container) &key &allow-other-keys)
(shape:head-fields (make-instance (item-class cont)))) (setf (gethash (short-name cont) *containers*) cont)
(setf (item-head-fields cont) (shape:head-fields (make-instance (item-class cont)))))
;(defun item-head-fields (cont)
; (shape:head-fields (make-instance (item-class cont))))
(defun make-item (cont &rest head) (defun make-item (cont &rest head)
(make-instance (item-class cont) :head head :container cont)) (make-instance (item-class cont) :head head :container cont))