View source: R/marshal.connection.R
marshal.connection | R Documentation |
Marshalling of R connections
## S3 method for class 'connection'
marshal(con, ...)
## S3 method for class 'connection'
marshallable(con, ...)
con |
A connection. |
... |
Not used. |
A marshalled
object as described in marshal()
.
Not all connections can be marshalled, specifically we:
cannot marshal connections stdin (0), stdout (1), and stderr (2)
can only marshal read-only connections
can only marshal unopened or seekable connections
tf <- tempfile()
cat(file = tf, letters, sep = "")
## Read-only connection
con <- file(tf, open = "rb")
bfr <- readChar(con, nchars = 4L)
print(bfr) ## "abcd"
## Marshal read-only connection, which records the
## current state, including the current file position.
con_ <- marshal(con)
## Unmarshal connection, which restores the state
## of the original connection, including the current
## file position
con2 <- unmarshal(con_)
stopifnot(
all.equal(summary(con2), summary(con)),
identical(seek(con2), seek(con))
)
bfr <- readChar(con, nchars = 4L)
print(bfr)
bfr2 <- readChar(con2, nchars = 4L)
print(bfr2)
stopifnot(identical(bfr2, bfr))
## Cleanup
close(con)
close(con2)
file.remove(tf)
con <- url("https://www.r-project.org")
print(con)
## Marshal read-only connection, which records the
## current state, including the current file position.
con_ <- marshal(con)
## Unmarshal connection, which restores the state
## of the original connection
con2 <- unmarshal(con_)
print(con2)
stopifnot(all.equal(summary(con2), summary(con)))
bfr <- readChar(con, nchars = 100L)
print(bfr)
bfr2 <- readChar(con2, nchars = 100L)
print(bfr2)
stopifnot(identical(bfr2, bfr))
## Cleanup
close(con)
close(con2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.