Tasks #520

Serialize RSB events including meta-data

Added by J. Moringen over 12 years ago. Updated over 12 years ago.

Status:ResolvedStart date:08/23/2011
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:-
Target version:Robotics Service Bus - 0.5

Related issues

Related to Robotics Service Bus - Bug #375: Fragmentation: Do not transmit full Event Meta-data in al... Resolved 06/20/2011

Associated revisions

Revision d88afebe
Added by J. Moringen over 12 years ago

Integrated channel transform mechanism
refs #520
  • src/protocol.lisp (%make-channel): added parameter transform;
    updated documentation string
    (%make-channel-transform): new generic function; create an
    associated transform for a channel
  • src/channel.lisp (channel::transform): new slot; stores the
    transform of a channel
    (entry channel integer): added keyword parameter transform; apply
    transform if non-nil
    (setf entry t channel local-time:timestamp): likewise
  • src/bag.lisp (shared-initialize :after bag t): make a channel
    transform when making a channel
    (setf bag-channel list bag string): added keyword parameter
    transform; pass transform to `%make-channel'
    (%make-channel bag string t list): added transform parameter; pass
    transform to created channel
    (%make-channel-transform): new method; create a channel transform
    based on the type property of the channel meta-data
  • src/synchronized-bag.lisp
    (%make-channel synchronized-bag string list t): added transform
    parameter
  • src/package.lisp (package rsbag): added used package rsbag.transform
  • src/backend/tidelog/file.lisp
    (put-channel file integer string list): apply `encode-type' to
    channel type prior to serialization
    (make-channel): apply `decode-type' to channel type
    (encode-type): convert channel type to a serializable form
    (decode-type): decode channel type from serializable form
  • src/backend/tidelog/package.lisp (package rsbag.backend.tidelog):
    added used package split-sequence
  • cl-rsbag.asd (system cl-rsbag): added system dependency on
    split-sequence

Revision 9264e415
Added by J. Moringen over 12 years ago

Added RSB event (de)serialization in src/transform/rsb-event.lisp
refs #520
  • src/transform/rsb-event.lisp: new file; contains a transform
    that (de)serializes RSB events
  • src/transform/package.lisp (package rsbag.transform): added used
    package iterate
  • cl-rsbag.asd (system cl-rsbag): added defsystem dependency on
    cl-protobuf; added rsb-serialization module with data directory and
    file src/transform/rsb-event.lisp; added dependency of module rsb on
    module rsb-serialization

Revision 97662b30
Added by J. Moringen over 12 years ago

Added participant-converter in src/protocol.lisp
refs #520
  • src/protocol.lisp (participant-converter): new generic function;
    return the converter used by a participant for a given wire-type
    (participant-converter :around t t): new method; signal an error if
    the next method does not produce a result
  • src/participant.lisp (participant-converter t t): new method; try to
    obtain a requested converter from the connectors of a participant
  • src/package.lisp (package rsb): added exported symbol
    participant-converter

Revision 6c9a2ed7
Added by J. Moringen over 12 years ago

Fixed %make-channel-transform in src/bag.lisp
refs #520
  • src/bag.lisp (%make-channel-transform bag string list): use
    `make-transform' correctly

Revision 6f9db3a3
Added by J. Moringen over 12 years ago

Added channel transform construction in src/rsb/construction.lisp
refs #520
  • src/rsb/construction.lisp (events->bag listener bag): added keyword
    parameter wire-schema; use wire-schema parameter to construct a
    channel transform
    (define-make-listener-method): removed
    (events->bag uri bag): extract and process wire-schema URI option
    (events->bag string bag): delegate to URI-specialized method
  • src/rsb/package.lisp (package rsbag.rsb): added used package
    rsbag.transform

Revision 5e1ac011
Added by J. Moringen over 12 years ago

Fixed channel transform construction
refs #520
  • src/bag.lisp (%make-channel-transform bag string list): removed
    special case for RSB-specific transform
  • src/transform/protocol.lisp (make-transform): &rest args do not have
    to be keyword arguments anymore
    (make-transform symbol): likewise
  • src/transform/rsb-event.lisp (toplevel): removed leftover optimize
    declamation
    (make-transform eql :rsb-event): new method; handle arguments and
    delegate to `find-transform-class'
  • src/rsb/construction.lisp (events->bag listener bag): convert
    wire-schema argument to keyword

Revision cd7ed8e4
Added by J. Moringen over 12 years ago

Added channel meta-data in src/{util,channel}.lisp
fixes #520
  • src/util.lisp: new file; contains utilities used in the cl-rsbag
    system
  • src/channel.lisp (channel): added superclass plist-meta-data-mixin
    (channel::meta-data): added reader channel-meta-data
  • src/bag.lisp (%make-channel bag string t list): pass meta-data to
    constructed channel instance
  • src/package.lisp (package rsbag): added exported symbol
    meta-data-count, meta-data-keys, meta-data-values, meta-data-plist,
    meta-data-alist and channel-meta-data
  • src/rsb/package.lisp (package rsbag.rsb): added shadowing imports
    rsbag symbols meta-data-count, meta-data-keys, meta-data-values,
    meta-data-plist and meta-data-alist
  • cl-rsbag.asd (system cl-rsbag): added file src/util.lisp

History

#1 Updated by J. Moringen over 12 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 60 to 100

Applied in changeset r56.

#2 Updated by J. Moringen over 12 years ago

  • Target version changed from rsb-0.10 to 0.5

Also available in: Atom PDF