Enhancement #817

bag play, cat: Handle multiple log files

Added by J. Moringen over 9 years ago. Updated over 4 years ago.

Status:ResolvedStart date:01/21/2012
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Commandline Tools
Target version:Robotics Service Bus - rsb-0.16

Description

Currently, when multiple log files should be processed in synchronized way, it is required to produce a merged and synchronized intermediate file via bag-merge. bag-play or bag-cat then operates on the merged file.

This step could be avoided if bag-play and bag-cat could do on-the-fly synchronization of multiple log files as bag-merge does.

Would this be useful?

Associated revisions

Revision 6f687b57
Added by J. Moringen almost 6 years ago

Pass all input files to bag->events in src/commands/*.lisp

refs #817

  • src/commands/introspect.lisp (command-execute): pass all input files
    to `bag->events' instead of just the first
  • src/commands/cat.lisp (command-execute cat): likewise
  • src/commands/play.lisp (command-execute): likewise

Revision da486e6a
Added by J. Moringen almost 6 years ago

Preparation for multiple-file support in bag->events in src/rsb/construction.lisp

refs #817

  • src/rsb/construction.lisp (bag->events sequence t): new method; will
    later allow opening multiple sources
    (bag->events channel string): changed specializer t -> channel
  • test/rsb/protocol.lisp (test bag->events-root::smoke): added cases
    with sequences of sources

Revision 2739d05b
Added by J. Moringen over 4 years ago

Added composite-connection-mixin in src/rsb/**/*.lisp

refs #817

  • src/rsb/protocol.lisp (connection-direct-connections): new generic
    function; return a list of child connections
    (connection-connections): new generic function; return certain
    ancestor connections
    (connection-direct-connections t): new method; default behavior
    consists in not returning any children
    (connection-connections t): new method; default behavior consists in
    traversing and collecting children according to keyword arguments
  • src/rsb/bag-connection.lisp (composite-connection-mixin): new class;
    mixin for connections with child connections
    (shared-initialize :after composite-connection-mixin t): changed
    specializer bag-connection -> composite-connection-mixin
    (setf processor-error-policy :before t composite-connection-mixin):
    likewise
    (close composite-connection-mixin): likewise
    (wait composite-connection-mixin): likewise
    (start composite-connection-mixin): likewise
    (stop composite-connection-mixin): likewise
    (print-items append composite-connection-mixin): likewise
    (bag-connection): added superclass `composite-connection-mixin'
    (bag-connection::channels): removed slot; provided by
    `composite-connection-mixin'
    (start :after recording-bag-connection): use
    `connection-connections' instead of `connection-channels'
  • src/rsb/package.lisp (package rsbag.rsb): added exported symbols
    connection-direct-connections and connection-connections
  • src/rsb/recording/channel-connections.lisp
    (process-event recording-bag-connection timestamp t): use
    `connection-connections' instead of `connection-channels'
    (print-items recording-channel-connection): adapted to renamed print
    items
  • src/rsb/recording/construction.lisp (events->bag sequence bag):
    adapted to changed initargs
    (events->bag null bag): likewise
  • src/rsb/replay/util.lisp (inject-informer): use
    `connection-connections' instead of `connection-channels'
  • src/rsb/replay/strategy-mixins.lisp
    (make-view t view-creation-mixin): changed specializer
    replay-bag-connection -> t; use `connection-connections' instead of
    `connection-channels'
  • src/rsb/replay/construction.lisp (bag->events bag t): adapted to
    changed initargs

Revision 7065ca1b
Added by J. Moringen over 4 years ago

Added composite-connection-mixin in src/rsb/**/*.lisp

refs #817

  • src/rsb/protocol.lisp (connection-direct-connections): new generic
    function; return a list of child connections
    (connection-connections): new generic function; return certain
    ancestor connections
    (connection-direct-connections t): new method; default behavior
    consists in not returning any children
    (connection-connections t): new method; default behavior consists in
    traversing and collecting children according to keyword arguments
  • src/rsb/bag-connection.lisp (composite-connection-mixin): new class;
    mixin for connections with child connections
    (shared-initialize :after composite-connection-mixin t): changed
    specializer bag-connection -> composite-connection-mixin
    (setf processor-error-policy :before t composite-connection-mixin):
    likewise
    (close composite-connection-mixin): likewise
    (wait composite-connection-mixin): likewise
    (start composite-connection-mixin): likewise
    (stop composite-connection-mixin): likewise
    (print-items append composite-connection-mixin): likewise
    (bag-connection): added superclass `composite-connection-mixin'
    (bag-connection::channels): removed slot; provided by
    `composite-connection-mixin'
    (start :after recording-bag-connection): use
    `connection-connections' instead of `connection-channels'
  • src/rsb/package.lisp (package rsbag.rsb): added exported symbols
    connection-direct-connections and connection-connections
  • src/rsb/recording/channel-connections.lisp
    (process-event recording-bag-connection timestamp t): use
    `connection-connections' instead of `connection-channels'
    (print-items recording-channel-connection): adapted to renamed print
    items
  • src/rsb/recording/construction.lisp (events->bag sequence bag):
    adapted to changed initargs
    (events->bag null bag): likewise
  • src/rsb/replay/util.lisp (inject-informer): use
    `connection-connections' instead of `connection-channels'
  • src/rsb/replay/strategy-mixins.lisp
    (make-view t view-creation-mixin): changed specializer
    replay-bag-connection -> t; use `connection-connections' instead of
    `connection-channels'
  • src/rsb/replay/construction.lisp (bag->events bag t): adapted to
    changed initargs

Revision 34ae37a1
Added by J. Moringen over 4 years ago

Moved replay connection code src/rsb{ -> /replay}/*.lisp

refs #817

  • src/rsb/bag-connection.lisp (replay-bag-connection): removed; moved
    to src/rsb/replay/bag-connections.lisp
    (setf processor-error-policy :before replay-bag-connection):
    likewise
  • src/rsb/construction.lisp (bag->events sequence t): removed; moved
    to src/rsb/replay/construction.lisp
  • src/rsb/package.lisp (package rsbag.rsb): removed exported symbols
    connection-strategy and replay-bag-connection
  • src/rsb/replay/bag-connections.lisp: new file; contains
    replay-specific connection classes; in particular
    `replay-connection-mixin' has been split off from
    `replay-bag-connection'
  • src/rsb/replay/construction.lisp (bag->events sequence t): new
    method; moved here from src/rsb/construction.lisp
  • src/rsb/replay/package.lisp (package rsbag.rsb.replay): added
    exported symbols connection-strategy and replay-bag-connection
  • cl-rsbag.asd (system cl-rsbag): added file
    src/rsb/replay/bag-connections.lisp

Revision 1ac34911
Added by J. Moringen over 4 years ago

Moved replay connection code src/rsb{ -> /replay}/*.lisp

refs #817

  • src/rsb/bag-connection.lisp (replay-bag-connection): removed; moved
    to src/rsb/replay/bag-connections.lisp
    (setf processor-error-policy :before replay-bag-connection):
    likewise
  • src/rsb/construction.lisp (bag->events sequence t): removed; moved
    to src/rsb/replay/construction.lisp
  • src/rsb/package.lisp (package rsbag.rsb): removed exported symbols
    connection-strategy and replay-bag-connection
  • src/rsb/replay/bag-connections.lisp: new file; contains
    replay-specific connection classes; in particular
    `replay-connection-mixin' has been split off from
    `replay-bag-connection'
  • src/rsb/replay/construction.lisp (bag->events sequence t): new
    method; moved here from src/rsb/construction.lisp
  • src/rsb/replay/package.lisp (package rsbag.rsb.replay): added
    exported symbols connection-strategy and replay-bag-connection
  • test/rsb/protocol.lisp (test bag->events-root::smoke): adapted to
    changed packages
    (test bag->events-root::prefix-scope): likewise
  • cl-rsbag.asd (system cl-rsbag): added file
    src/rsb/replay/bag-connections.lisp

Revision 5e4d92a0
Added by J. Moringen over 4 years ago

Support trees of connections in src/rsb/replay/*.lisp

refs #817

  • src/rsb/replay/bag-connections.lisp (replay-multi-bag-connection):
    new connection class; for replaying multiple bags
  • src/rsb/replay/construction.lisp (bag->events sequence t): for
    multiple bags, instead of signaling an error, construct a
    `replay-multi-bag-connection'
    (bag->events bag t): accept connection-class keyword argument
  • test/rsb/protocol.lisp (test bag->events-root::smoke): added cases
    with multiple source bags

Revision f1292bce
Added by J. Moringen over 4 years ago

Support multiple input files in src/commands/play.lisp

refs #817

  • src/commands/play.lisp (header): updated copyright
    (play): updated documentation string
  • test/commands/cat.lisp (test cat-root::construction): added a cases
    with multiple source bags
  • test/commands/play.lisp (test play-root::construction): likewise
  • test/commands/introspect.lisp (header): updated copyright
    (test introspect-root::construction): added a cases with multiple
    source bags

Revision de58dc72
Added by J. Moringen over 4 years ago

Support multiple input files in bag-{cat,play,introspect}/main.lisp

fixes #817

  • bag-cat/main.lisp (make-help-string): indicate possibility of
    multiple input files
    (update-synopsis): likewise
  • bag-play/help.lisp (header): updated copyright
    (make-help-string): indicate possibility of multiple input files
  • bag-play/main.lisp (update-synopsis): likewise
    (parse-inputs-and-uri): new function; split remainder of commandline
    options into input files and target URI
    (main): allow more than two "remainder" commandline arguments; use
    `parse-inputs-and-uri'; pass all input files to the constructed
    command
  • bag-introspect/main.lisp (header): updated copyright
    (make-help-string): indicate that multiple input files are allowed
    (update-synopsis): likewise
  • CMakeLists.txt: added test for running cat, play and introspect with
    multiple input files

Revision 6b21e0e2
Added by J. Moringen over 4 years ago

Mention multiple input files in {tool-{cat,play,introspect},news}.rst

refs #817

  • tool-cat.rst (Synopsis): indicate that multiple input files can be
    supplied
  • tool-introspect.rst (Synopsis): likewise
  • tool-play.rst (Synopsis): likewise
  • news.rst (RSBag 0.16): mention that cat, play and introspect now
    accept multiple input files

History

#1 Updated by J. Wienke over 9 years ago

Yes, definitely interesting.

#2 Updated by J. Moringen over 9 years ago

  • Status changed from Feedback to In Progress
  • Assignee set to J. Moringen

#3 Updated by J. Moringen over 9 years ago

  • Target version set to rsb-0.7

#4 Updated by J. Moringen over 9 years ago

  • Target version changed from rsb-0.7 to rsb-0.9

#5 Updated by J. Moringen over 8 years ago

  • Target version changed from rsb-0.9 to rsb-0.10

#6 Updated by J. Moringen almost 8 years ago

  • % Done changed from 0 to 30

#7 Updated by J. Moringen almost 8 years ago

  • Target version changed from rsb-0.10 to rsb-0.11

#8 Updated by J. Moringen almost 7 years ago

  • Target version changed from rsb-0.11 to rsb-0.12

#9 Updated by J. Moringen over 6 years ago

  • Target version changed from rsb-0.12 to rsb-0.13

#10 Updated by J. Moringen over 5 years ago

  • Target version changed from rsb-0.13 to rsb-0.14

#11 Updated by J. Moringen over 5 years ago

  • Target version changed from rsb-0.14 to rsb-0.15

#12 Updated by J. Moringen over 5 years ago

  • Subject changed from Should bag-play, bag-cat be able to handle multiple log files? to bag play, cat: Handle multiple log files

#13 Updated by J. Moringen almost 5 years ago

  • Target version changed from rsb-0.15 to rsb-0.16

#14 Updated by J. Moringen over 4 years ago

  • % Done changed from 30 to 60

#15 Updated by J. Moringen over 4 years ago

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

#16 Updated by J. Moringen over 4 years ago

  • Category set to Commandline Tools

Also available in: Atom PDF