cl-scopes/storage/folder.lisp

25 lines
780 B
Common Lisp

;;;; cl-scopes/storage/folder - persistent folders, stored in a SQL database.
(defpackage :scopes/storage/folder
(:use :common-lisp)
(:local-nicknames (:shape :scopes/shape)
(:tracking :scopes/storage/tracking))
(:export #:folder
#:make-container))
(in-package :scopes/storage/folder)
(defclass folder (tracking:track)
((shape:head-fields :initform '(:parent :name :ref))
(tracking:key-fields :initform '(:parent :name))))
(defun indexes (cont)
'((parent name ref) (ref)))
(defun make-container (storage)
(make-instance 'tracking:container
:item-class 'folder
:short-name :fldr
:table-name :folders
:index-factory #'indexes
:storage storage))