Replay Composition
Filtered Stream Replay
Pick One History
A replay UI can show the interleaved stream or focus on one named history. This script models the filtered view as ordinary data.
Program
Play the script to choose a stream and see the view label, color, and event count stay together.
filtered_stream_replay.R
Replay: real traced execution (multi-file project)
view_index <- 2
views <- c("main", "worker", "io")
colors <- c("blue", "green", "orange")
event_counts <- c(4, 3, 2)
view <- views[view_index]
color <- colors[view_index]
count <- event_counts[view_index]
label <- paste(view, color, count, sep = ":")
cat(label, "\n", sep = "")
view_index <- 1
views <- c("main", "worker", "io")
colors <- c("blue", "green", "orange")
event_counts <- c(4, 3, 2)
view <- views[view_index]
color <- colors[view_index]
count <- event_counts[view_index]
label <- paste(view, color, count, sep = ":")
cat(label, "\n", sep = "")
view_index <- 3
views <- c("main", "worker", "io")
colors <- c("blue", "green", "orange")
event_counts <- c(4, 3, 2)
view <- views[view_index]
color <- colors[view_index]
count <- event_counts[view_index]
label <- paste(view, color, count, sep = ":")
cat(label, "\n", sep = "")
view_index ← 2
1view_index <- 22views <- c("main", "worker", "io")values this step2view_indexviews ← main, worker, io
1view_index <- 22views <- c("main", "worker", "io")3colors <- c("blue", "green", "orange")values this stepmain, worker, ioviewscolors ← blue, green, orange
2views <- c("main", "worker", "io")3colors <- c("blue", "green", "orange")4event_counts <- c(4, 3, 2)values this stepblue, green, orangecolorsevent_counts ← 4, 3, 2
3colors <- c("blue", "green", "orange")4event_counts <- c(4, 3, 2)5view <- views[view_index]values this step4, 3, 2event_countsview ← worker
4event_counts <- c(4, 3, 2)5view <- views[view_index]6color <- colors[view_index]values this stepworkerview2view_indexcolor ← green
5view <- views[view_index]6color <- colors[view_index]7count <- event_counts[view_index]values this stepgreencolor2view_indexcount ← 3
6color <- colors[view_index]7count <- event_counts[view_index]8label <- paste(view, color, count, sep = ":")values this step3count4, 3, 2event_counts2view_indexlabel ← worker:green:3
7count <- event_counts[view_index]8label <- paste(view, color, count, sep = ":")9cat(label, "\n", sep = "")values this stepworker:green:3labelworkerviewgreencolor3countcat(label, " ", sep = "")
8label <- paste(view, color, count, sep = ":")9cat(label, "\n", sep = "")outputworker:green:3values this stepworker:green:3label
view_index ← 1
1view_index <- 12views <- c("main", "worker", "io")values this step1view_indexviews ← main, worker, io
1view_index <- 12views <- c("main", "worker", "io")3colors <- c("blue", "green", "orange")values this stepmain, worker, ioviewscolors ← blue, green, orange
2views <- c("main", "worker", "io")3colors <- c("blue", "green", "orange")4event_counts <- c(4, 3, 2)values this stepblue, green, orangecolorsevent_counts ← 4, 3, 2
3colors <- c("blue", "green", "orange")4event_counts <- c(4, 3, 2)5view <- views[view_index]values this step4, 3, 2event_countsview ← main
4event_counts <- c(4, 3, 2)5view <- views[view_index]6color <- colors[view_index]values this stepmainview1view_indexcolor ← blue
5view <- views[view_index]6color <- colors[view_index]7count <- event_counts[view_index]values this stepbluecolor1view_indexcount ← 4
6color <- colors[view_index]7count <- event_counts[view_index]8label <- paste(view, color, count, sep = ":")values this step4count4, 3, 2event_counts1view_indexlabel ← main:blue:4
7count <- event_counts[view_index]8label <- paste(view, color, count, sep = ":")9cat(label, "\n", sep = "")values this stepmain:blue:4labelmainviewbluecolor4countcat(label, " ", sep = "")
8label <- paste(view, color, count, sep = ":")9cat(label, "\n", sep = "")outputmain:blue:4values this stepmain:blue:4label
view_index ← 3
1view_index <- 32views <- c("main", "worker", "io")values this step3view_indexviews ← main, worker, io
1view_index <- 32views <- c("main", "worker", "io")3colors <- c("blue", "green", "orange")values this stepmain, worker, ioviewscolors ← blue, green, orange
2views <- c("main", "worker", "io")3colors <- c("blue", "green", "orange")4event_counts <- c(4, 3, 2)values this stepblue, green, orangecolorsevent_counts ← 4, 3, 2
3colors <- c("blue", "green", "orange")4event_counts <- c(4, 3, 2)5view <- views[view_index]values this step4, 3, 2event_countsview ← io
4event_counts <- c(4, 3, 2)5view <- views[view_index]6color <- colors[view_index]values this stepioview3view_indexcolor ← orange
5view <- views[view_index]6color <- colors[view_index]7count <- event_counts[view_index]values this steporangecolor3view_indexcount ← 2
6color <- colors[view_index]7count <- event_counts[view_index]8label <- paste(view, color, count, sep = ":")values this step2count4, 3, 2event_counts3view_indexlabel ← io:orange:2
7count <- event_counts[view_index]8label <- paste(view, color, count, sep = ":")9cat(label, "\n", sep = "")values this stepio:orange:2labeliovieworangecolor2countcat(label, " ", sep = "")
8label <- paste(view, color, count, sep = ":")9cat(label, "\n", sep = "")outputio:orange:2values this stepio:orange:2label
filtered history
Choosing one history is just selecting one stream from the composed replay data.
color label
A stable color label helps distinguish histories without changing the source file.
count check
The event count makes the selected history easy to verify.