-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathstandard-events.lisp
57 lines (43 loc) · 1.48 KB
/
standard-events.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(in-package #:org.shirakumo.deeds)
(define-event blocking-event ()
((done :initform NIL :accessor done :mutable T)))
(define-event message-event ()
((message :initarg :message :reader message))
(:default-initargs
:message (error "MESSAGE required.")))
(define-event info-event (message-event)
())
(define-event warning-event (message-event)
())
(define-event error-event (message-event)
())
(define-event payload-event ()
((payload :initarg :payload :reader payload))
(:default-initargs
:payload (error "PAYLOAD required.")))
(define-event sequence-event ()
((index :initarg :index :reader index)
(max-index :initarg :max-index :reader max-index))
(:default-initargs
:index (error "INDEX required.")
:max-index NIL))
(define-event chunked-payload-event (payload-event sequence-event)
())
(define-event identified-event ()
((identifier :initarg :identifier :reader identifier)))
(defmethod initialize-instance :after ((identified-event identified-event) &key)
(unless (slot-boundp identified-event 'identifier)
(setf (slot-value identified-event 'identifier)
identified-event)))
(define-event stream-event (identified-event)
())
(define-event stream-begin-event (stream-event)
())
(define-event stream-payload-event (stream-event payload-event)
()
(:default-initargs
:identifier (error "IDENTIFIER required.")))
(define-event stream-end-event (stream-event)
()
(:default-initargs
:identifier (error "IDENTIFIER required.")))