Tasks #335
Add Metadata Support to Events and Notifications
Status: | Resolved | Start date: | 01/17/2011 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | Common Lisp | |||
Target version: | 0.3 |
Associated revisions
Added meta-data protocol buffer descriptor in data/MetaData.proto
refs #335
refs #335
- data/MetaData.proto: new file; protocol buffer descriptor for
meta-data - data/Notification.proto: import MetaData.proto; added field
meta_data - cl-rsb.asd (cl-rsb-and-cl-protobuf): added protocol buffer
descriptor file data/MetaData.proto
Added define-plist-data-mixin macro in src/util.lisp
refs #335
refs #335
- src/util.lisp (plist-meta-data-mixin): removed; replaced by
`define-plist-data-mixin'
(meta-data-count plist-meta-data-mixin): likewise
(meta-data-keys plist-meta-data-mixin): likewise
(meta-data-values plist-meta-data-mixin): likewise
(meta-data-plist plist-meta-data-mixin): likewise
(meta-data-alist plist-meta-data-mixin): likewise
(meta-data plist-meta-data-mixin t): likewise
(setf meta-data t plist-meta-data-mixin t): likewise
(define-plist-data-mixin): new macro; define a mixin class that adds
a plist of items and corresponding accessors - src/protocol.lisp (meta-data-count):
removed; replaced by `define-plist-data-mixin'
(meta-data-keys): likewise
(meta-data-values): likewise
(meta-data-plist): likewise
(meta-data-alist): likewise
(meta-data): likewise
(setf meta-data): likewise - src/event.lisp (define-plist-data-mixin meta-data): new; define
mixin class for plist-stored meta-data
(define-plist-data-mixin timestamp): new; define mixin class for
plist-stored timestamps
(event): added superclass `plist-timestamp-mixin'
(event::timestamp): specify accessor for timestamp slot - src/package.lisp (package rsb): added exported symbols
meta-data-count, timestamp, timestamp-count, timestamp-keys,
timestamp-values, timestamp-plist, timestamp-alist and
event-timestamps
Added origin slot to event class in src/event.lisp
refs #335
refs #335
- src/event.lisp (event): updated documentation string
(event::origin): new slot; stores the id of the participant from
which the event originated
(event=): added keyword parameter compare-origins? - src/informer.lisp (send informer event): set event's origin to the
id of the sending informer instance - src/package.lisp (package rsb): added exported symbol event-origin
- src/transport/spread/conversion.lisp (one-notification->event):
retrieve origin of the event from the meta-data part of the
notification
(event->notifications): pass origin of the event to
`make-notification'
(make-notification): added origin parameter; create a meta-data
instance containing the origin id and add it to the notification
Added timestamp support in src/event.lisp, .../spread/conversion.lisp
refs #335
refs #335
- src/event.lisp (event): updated documentation string
(shared-initialize :before event t): changed initialize-instance ->
shared-initialize
(shared-initialize :after event t): set :create timestamp to current
time unless otherwise instructed
(event=): added parameter compare-timestamps; compare the timestamps
specified via the parameter - src/transport/spread/conversion.lisp (one-notification->event):
request the event instance to be created without timestamp; set
:create, :send and :receive timestamps afterwards
(event->notifications): pass timestamps of the event to
`make-notification'
(make-notification): added timestamps parameter; store the
timestamps in the meta-data part of the notification
(timestamp->unix-microseconds): new function; helper function to
convert timestamp instance to a single uint64
(unix-microseconds->timestamp): new function; opposite direction - cl-rsb.asd (system cl-rsb): added dependency on system local-time
Fixed conversion bugs in src/transport/spread/conversion.lisp
refs #335
refs #335
- src/transport/spread/conversion.lisp (one-notification->event): be
prepared for meta-data or parts of it being absent from the
notification
(event->notifications): pass timestamps to `make-notification' for
multi-fragment notifications
Another fix in src/transport/spread/conversion.lisp
refs #335
refs #335
- src/transport/spread/conversion.lisp (one-notification->event):
fixed test for sender-id presence zerop -> emptyp
Support "userTimes" in src/transport/spread/conversion.lisp
fixes #335
fixes #335
- src/transport/spread/conversion.lisp (one-notification->event):
extract user-time records and store as timestamps
(make-notification): use string names of meta data item keys
History
#1 Updated by J. Moringen almost 13 years ago
- Subject changed from Add Metadata Support to Event Notifications to Add Metadata Support to Events and Notifications
#2 Updated by J. Moringen almost 13 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 20
#3 Updated by J. Moringen almost 13 years ago
- Status changed from In Progress to Resolved
- % Done changed from 20 to 100
Applied in changeset r1313.