27 lines
945 B
Common Lisp
27 lines
945 B
Common Lisp
;;;; cl-scopes/storage/msglog - storing message data in a SQL database
|
|
|
|
(defpackage :scopes/storage/msglog
|
|
(:use :common-lisp)
|
|
(:local-nicknames (:message :scopes/core/message)
|
|
(:shape :scopes/shape)
|
|
(:storage :scopes/storage)
|
|
(:tracking :scopes/storage/tracking))
|
|
(:export #:make-container #:save))
|
|
|
|
(in-package :scopes/storage/msglog)
|
|
|
|
(defclass pmsg (message:message tracking:track) ())
|
|
|
|
(defun make-container (storage)
|
|
(make-instance 'tracking:container
|
|
:item-class 'pmsg
|
|
:table-name :messages
|
|
:indexes '((domain action class item)
|
|
(domain class item))
|
|
:storage storage))
|
|
|
|
(defun save (msg cont)
|
|
(let ((pm (make-instance 'pmsg
|
|
:head (shape:head msg) :data (shape:data msg)
|
|
:container cont)))
|
|
(tracking:insert pm)))
|