rollback {simmer} | R Documentation |
Rollback to a Previous Activity
Description
Activity for going backwards to a previous point in the trajectory. Useful to implement loops.
Usage
rollback(.trj, target, times = Inf, check = NULL, ..., tag)
Arguments
.trj |
the trajectory object. |
target |
tag name (previously set with the |
times |
the number of repetitions until an arrival may continue. |
check |
a callable object (a function) which must return a boolean. If
present, the |
... |
unused |
tag |
activity tag name to perform named rollbacks (see
|
Value
Returns the trajectory object.
Examples
## rollback a specific number of times
traj <- trajectory() %>%
log_("hello!") %>%
timeout(1) %>%
rollback(2, 3)
simmer() %>%
add_generator("hello_sayer", traj, at(0)) %>%
run() %>% invisible
## same but with a tag as target
traj <- trajectory() %>%
log_("hello!", tag="msg") %>%
timeout(1) %>%
rollback("msg", 3)
simmer() %>%
add_generator("hello_sayer", traj, at(0)) %>%
run() %>% invisible
## custom check
env <- simmer()
traj <- trajectory() %>%
set_attribute("var", 0) %>%
log_(tag="msg", function()
paste("attribute level is at:", get_attribute(env, "var"))) %>%
set_attribute("var", 25, mod="+") %>%
rollback("msg", check=function() get_attribute(env, "var") < 100) %>%
log_("done")
env %>%
add_generator("dummy", traj, at(0)) %>%
run() %>% invisible
[Package simmer version 4.4.6.4 Index]