23 lines
674 B
Common Lisp
23 lines
674 B
Common Lisp
;;;; cl-scopes/core/message
|
|
|
|
(defpackage :scopes/core/message
|
|
(:use :common-lisp)
|
|
(:local-nicknames (:shape :scopes/shape))
|
|
(:export #:message #:create
|
|
#:head #:data #:sender))
|
|
|
|
(in-package :scopes/core/message)
|
|
|
|
;;;; message
|
|
|
|
(defclass message (shape:record)
|
|
((shape:head-fields :initform '(:domain :action :class :item))
|
|
(sender :reader sender :initarg :sender :initform nil)
|
|
(timestamp)))
|
|
|
|
(defun create (head &key data sender)
|
|
(make-instance 'message :head head :data data :sender sender))
|
|
|
|
(defmethod print-object ((msg message) stream)
|
|
(format stream "<message ~s ~s <data ~s>>"
|
|
(shape:head msg) (sender msg) (shape:data msg)))
|