taskCallbackManager
Create an R-level Task Callback Manager
Description
This provides an entirely R-language mechanism for managing callbacks or actions that are invoked at the conclusion of each top-level task. Essentially, we register a single R function from this manager with the underlying, native task-callback mechanism and this function handles invoking the other R callbacks under the control of the manager. The manager consists of a collection of functions that access shared variables to manage the list of user-level callbacks.
Usage
taskCallbackManager(handlers = list(), registered = FALSE, verbose = FALSE)
Arguments
handlers | this can be a list of callbacks in which each element is a list with an element named |
registered | a logical value indicating whether the |
verbose | a logical value, which if |
Value
A list
containing 6 functions:
| register a callback with this manager, giving the function, an optional 5-th argument, an optional name by which the callback is stored in the list, and a |
| remove an element from the manager's collection of callbacks, either by name or position/index. |
| the ‘real’ callback function that is registered with the C-level dispatch mechanism and which invokes each of the R-level callbacks within this manager's control. |
| a function to set the suspend state of the manager. If it is suspended, none of the callbacks will be invoked when a task is completed. One sets the state by specifying a logical value for the |
| a function to register the |
| returns the list of callbacks being maintained by this manager. |
References
Duncan Temple Lang (2001) Top-level Task Callbacks in R, https://developer.r-project.org/TaskHandlers.pdf
See Also
addTaskCallback
, removeTaskCallback
, getTaskCallbackNames
and the reference.
Examples
# create the manager h <- taskCallbackManager() # add a callback h$add(function(expr, value, ok, visible) { cat("In handler\n") return(TRUE) }, name = "simpleHandler") # look at the internal callbacks. getTaskCallbackNames() # look at the R-level callbacks names(h$callbacks()) removeTaskCallback("R-taskCallbackManager")
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.