\Header{taskCallbackNames}{Query the names of the current internal top-level task callbacks}
\alias{getTaskCallbackNames}{taskCallbackNames}
\keyword{environment}{taskCallbackNames}
\begin{Description}\relax
This provides a way to get the names (or identifiers)
for the currently registered task callbacks
that are invoked at the conclusion of each top-level task.
These identifiers can be used to remove a callback.
\end{Description}
\begin{Usage}
\begin{verbatim}
getTaskCallbackNames()
\end{verbatim}
\end{Usage}
\begin{Arguments}
\end{Arguments}
\begin{Value}
A character vector giving the name for each of the
registered callbacks which are invoked when
a top-level task is completed successfully.
Each name is the one used when registering
the callbacks and returned as the in the
call to \code{\Link{addTaskCallback}}.
\end{Value}
\begin{Note}\relax
One can use \code{\Link{taskCallbackManager}}
to manage user-level task callbacks,
i.e., S-language functions, entirely within
the S language and access the names
more directly.
\end{Note}
\begin{SeeAlso}\relax
\code{\Link{addTaskCallback}}
\code{\Link{removeTaskCallback}}
\code{\Link{taskCallbackManager}}
\url{http://developer.r-project.org/TaskHandlers.pdf}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
  n <- addTaskCallback(function(expr, value, ok, visible) {
                         cat("In handler\n")
                         return(TRUE)
                       }, name = "simpleHandler")

  getTaskCallbackNames()

    # now remove it by name
  removeTaskCallback("simpleHandler")

  h <- taskCallbackManager()
  h$add(function(expr, value, ok, visible) {
                         cat("In handler\n")
                         return(TRUE)
                       }, name = "simpleHandler")
  getTaskCallbackNames()
  removeTaskCallback("R-taskCallbackManager")
\end{ExampleCode}
\end{Examples}

