Loads an object from a file connection similar to load
(), but without resetting
file connections (to position zero).
WARNING: This is an internal function that should not be called by anything but the internal code of the R.cache package.
.baseLoad(con, envir=parent.frame())
A connection
.
An environment
where the loaded object will be stored.
Returns (invisible) a character
vector
of the names of objects
loaded.
The reason why it is not possible to use load
() is that
that resets the file position of the connection before trying to
load the object.
The reason why that happens is because when you pass a regular file
connection to load
() it gets coerced via gzcon
(),
which is the function that resets the file position.
The workaround is to create a local copy of base::load()
and
modify it by dropping the gzcon()
coercion. This is possible
because this function, that is .baseLoad()
, is always called
with a gzfile()
connection
.
This function is used by loadCache
() and readCacheHeader
().