Enhancement #817
bag play, cat: Handle multiple log files
Status: | Resolved | Start date: | 01/21/2012 | |
---|---|---|---|---|
Priority: | Normal | Due 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
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
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
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
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
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
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
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
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
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
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 12 years ago
Yes, definitely interesting.
#2 Updated by J. Moringen over 12 years ago
- Status changed from Feedback to In Progress
- Assignee set to J. Moringen
#3 Updated by J. Moringen over 12 years ago
- Target version set to rsb-0.7
#4 Updated by J. Moringen about 12 years ago
- Target version changed from rsb-0.7 to rsb-0.9
#5 Updated by J. Moringen about 11 years ago
- Target version changed from rsb-0.9 to rsb-0.10
#6 Updated by J. Moringen over 10 years ago
- % Done changed from 0 to 30
#7 Updated by J. Moringen over 10 years ago
- Target version changed from rsb-0.10 to rsb-0.11
#8 Updated by J. Moringen over 9 years ago
- Target version changed from rsb-0.11 to rsb-0.12
#9 Updated by J. Moringen about 9 years ago
- Target version changed from rsb-0.12 to rsb-0.13
#10 Updated by J. Moringen over 8 years ago
- Target version changed from rsb-0.13 to rsb-0.14
#11 Updated by J. Moringen about 8 years ago
- Target version changed from rsb-0.14 to rsb-0.15
#12 Updated by J. Moringen about 8 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 over 7 years ago
- Target version changed from rsb-0.15 to rsb-0.16
#14 Updated by J. Moringen over 7 years ago
- % Done changed from 30 to 60
#15 Updated by J. Moringen over 7 years ago
- Status changed from In Progress to Resolved
- % Done changed from 60 to 100
Applied in changeset rsbag-tools-cl|de58dc720fd43a328318f4060271a42611866d6d.
#16 Updated by J. Moringen about 7 years ago
- Category set to Commandline Tools