mirror of
https://github.com/rstudio/shiny.git
synced 2026-01-10 07:28:01 -05:00
72 lines
2.3 KiB
R
72 lines
2.3 KiB
R
% Generated by roxygen2: do not edit by hand
|
|
% Please edit documentation in R/reactives.R
|
|
\name{reactiveFileReader}
|
|
\alias{reactiveFileReader}
|
|
\title{Reactive file reader}
|
|
\usage{
|
|
reactiveFileReader(intervalMillis, session, filePath, readFunc, ...)
|
|
}
|
|
\arguments{
|
|
\item{intervalMillis}{Approximate number of milliseconds to wait between
|
|
checks of the file's last modified time. This can be a numeric value, or a
|
|
function that returns a numeric value.}
|
|
|
|
\item{session}{The user session to associate this file reader with, or
|
|
\code{NULL} if none. If non-null, the reader will automatically stop when
|
|
the session ends.}
|
|
|
|
\item{filePath}{The file path to poll against and to pass to \code{readFunc}.
|
|
This can either be a single-element character vector, or a function that
|
|
returns one.}
|
|
|
|
\item{readFunc}{The function to use to read the file; must expect the first
|
|
argument to be the file path to read. The return value of this function is
|
|
used as the value of the reactive file reader.}
|
|
|
|
\item{...}{Any additional arguments to pass to \code{readFunc} whenever it is
|
|
invoked.}
|
|
}
|
|
\value{
|
|
A reactive expression that returns the contents of the file, and
|
|
automatically invalidates when the file changes on disk (as determined by
|
|
last modified time).
|
|
}
|
|
\description{
|
|
Given a file path and read function, returns a reactive data source for the
|
|
contents of the file.
|
|
}
|
|
\details{
|
|
\code{reactiveFileReader} works by periodically checking the file's last
|
|
modified time; if it has changed, then the file is re-read and any reactive
|
|
dependents are invalidated.
|
|
|
|
The \code{intervalMillis}, \code{filePath}, and \code{readFunc} functions
|
|
will each be executed in a reactive context; therefore, they may read
|
|
reactive values and reactive expressions.
|
|
}
|
|
\examples{
|
|
\dontrun{
|
|
# Per-session reactive file reader
|
|
function(input, output, session) {
|
|
fileData <- reactiveFileReader(1000, session, 'data.csv', read.csv)
|
|
|
|
output$data <- renderTable({
|
|
fileData()
|
|
})
|
|
}
|
|
|
|
# Cross-session reactive file reader. In this example, all sessions share
|
|
# the same reader, so read.csv only gets executed once no matter how many
|
|
# user sessions are connected.
|
|
fileData <- reactiveFileReader(1000, NULL, 'data.csv', read.csv)
|
|
function(input, output, session) {
|
|
output$data <- renderTable({
|
|
fileData()
|
|
})
|
|
}
|
|
}
|
|
}
|
|
\seealso{
|
|
\code{\link[=reactivePoll]{reactivePoll()}}
|
|
}
|