addTaskCallback(f, data = NULL, name = character()) removeTaskCallback(id) getTaskCallbackNames()
f |
a logical-valued function with at least four arguments: expr,
result, ok, and visible. If the data
argument it given to addTaskCallback, then f must
have a fifth argument, data.
addTaskCallback adds f to the end of the list of callback functions. After each top-level expression is successfully evaluated, just after possible autoprinting of its result, TERR calls all the callback functions in the list with the top-level expression itself, the result of evaluating it, the constant TRUE (indicating that the evaluation was succcessful), and a logical value indicating whether the result was autoprinted. If the callback was added to the list with along with a data object, then that data object is given to that callback as the fifth argument. f should return either TRUE or FALSE:
|
data | an object of any type that is given as the fifth argument to f each time it is called. |
name | a character string giving the name for the callback. Names do not have to be unique; using the name of an exising callback does not replace the existing one. It just adds another with the same name. If name is not supplied or is NULL, then one is created based on the its position in the list of callbacks. |
id | an integer or character string specifying the position or name, respectively, of the callback to remove from the list of callbacks. |
addTaskCallback | returns the name of the added callback function. |
removeTaskCallback | returns TRUE if a callback was removed and FALSE otherwise (which would happen if id is not a valid index or name in the list of callbacks). |
getTaskCallbackNames | returns a character vector giving the names of the callbacks. |
## Not run: addTaskCallback(local({ N <- 0 getCpuTime <- function() sum(proc.time()[-3], na.rm=TRUE) prevCpuTime <- getCpuTime() function(expr, result, ok, visible) { N <<- N + 1 cpuTime <- getCpuTime() cat(sep="", " Task ", N, ": ", round(cpuTime - prevCpuTime,2), " seconds\n") prevCpuTime <<- cpuTime TRUE } }), name = "showCpuTime") for(i in 1:10000) for(j in 1:1000) log(i+j) sum(1:1e4) removeTaskCallback("showCpuTime") ## End(Not run)