blob: ac6fd3e079f6d80c9368ac97d68beaa3396638f6 [file] [log] [blame]
% File src/library/methods/man/TraceClasses.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{TraceClasses}
\docType{class}
\alias{traceable-class}
\alias{functionWithTrace-class}
\alias{MethodDefinitionWithTrace-class}
\alias{MethodWithNextWithTrace-class}
\alias{genericFunctionWithTrace-class}
\alias{groupGenericFunctionWithTrace-class}
\alias{derivedDefaultMethodWithTrace-class}
\alias{nonstandardGenericWithTrace-class}
%% methods generated by .InitTrace
\alias{show,MethodDefinitionWithTrace-method}
\alias{show,MethodWithNextWithTrace-method}
\alias{show,genericFunctionWithTrace-method}
\alias{show,sourceEnvironment-method}
%% private
\alias{.untracedFunction}
\alias{.makeTracedFunction}
\alias{.doTracePrint}
\alias{.InitTraceFunctions}
\title{Classes Used Internally to Control Tracing }
\description{ The classes described here are used by the R function
\code{\link{trace}} to create versions of functions and methods
including browser calls, etc., and also to \code{\link{untrace}} the
same objects.}
\section{Objects from the Class}{
Objects will be created from these classes by calls to \code{trace}.
(There is an \code{\link{initialize}} method for class
\code{"traceable"}, but you are unlikely to need it directly.)
}
\usage{
### Objects from the following classes are generated
### by calling trace() on an object from the corresponding
### class without the "WithTrace" in the name.
"functionWithTrace"
"MethodDefinitionWithTrace"
"MethodWithNextWithTrace"
"genericFunctionWithTrace"
"groupGenericFunctionWithTrace"
### the following is a virtual class extended by each of the
### classes above
"traceable"
}
\section{Slots}{
\describe{
\item{\code{.Data}:}{The data part, which will be \code{"function"}
for class \code{"functionWithTrace"}, and similarly for the other
classes.}
\item{\code{original}:}{Object of the original class; e.g.,
\code{"function"} for class \code{"functionWithTrace"}. }
}
}
\section{Extends}{
Each of the classes extends the corresponding untraced class, from the
data part; e.g., \code{"functionWithTrace"} extends \code{"function"}.
Each of the specific classes extends \code{"traceable"}, directly,
and class \code{"VIRTUAL"}, by class \code{"traceable"}.
}
\section{Methods}{
The point of the specific classes is that objects generated from them,
by function \code{trace()}, remain callable or dispatchable, in
addition to their new trace information.
}
\seealso{ function \code{\link{trace}} }
\keyword{classes}