Learn R Programming

RCurl (version 1.3-1)

binaryBuffer: Create internal C-level data structure for collecting binary data

Description

This is the constructor function for creating an internal data structure that is used when reading binary data from an HTTP request via RCurl. It is used with the native routine R_curl_write_binary_data for collecting the response from the HTTP query into a buffer that stores the bytes. The contents can then be brought back into R as a raw vector and then used in different ways, e.g. uncompressed with the Rcompression package, or written to a file via writeBin.

Usage

binaryBuffer(initialSize = 5000)

Arguments

initialSize
a number giving the size (number of bytes) to allocate for the buffer. In most cases, the size won't make an enormous difference. If this is small, the R_curl_write_binary_data routine will expand it as necessary when more daa

Value

  • An object of class RCurlBinaryBuffer which is to be treated as an opaque data for the most part. When passing this as the value of the file option, one will have to pass the ref slot.

    After the contents have been read, one can convert this object to an R raw vector using as(buf, "raw").

concept

  • Web
  • binary data

References

Curl homepage http://curl.haxx.se

See Also

R_curl_write_binary_data

Examples

Run this code
buf = binaryBuffer()

     # Now fetch the binary file.
  getURI("http://www.omegahat.org/RCurl/xmlParse.html.gz",
         write = getNativeSymbolInfo("R_curl_write_binary_data")$address,
         file = buf@ref)

   # Convert the internal data structure into an R raw vector
  b = as(buf, "raw")

 if(require(Rcompression)) 
   gunzip(b)

Run the code above in your browser using DataLab