From ripley at stats.ox.ac.uk  Fri Feb 24 08:13:33 2006
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Fri, 24 Feb 2006 07:13:33 +0000 (GMT)
Subject: [Rd] Utilizing the internet module
In-Reply-To: <43FE4031.1080503@vanderbilt.edu>
References: <43FDEBEB.4040104@vanderbilt.edu>
	<Pine.LNX.4.64.0602231904380.10209@gannet.stats.ox.ac.uk>
	<43FE4031.1080503@vanderbilt.edu>
Message-ID: <Pine.LNX.4.64.0602240711150.2370@gannet.stats.ox.ac.uk>

On Thu, 23 Feb 2006, Jeffrey Horner wrote:

> Prof Brian Ripley wrote:
>> On Thu, 23 Feb 2006, Jeffrey Horner wrote:
>> 
>>> Hello all,
>>> 
>>> I'd like to utilize the R_Sock* functions from R_ext/R-ftp-http.h in my
>>> R package. The intent is to use these in conjunction with R_serialize()
>>>  to store R objects in a remote data store. I'm aware that version
>>> 2.2.1 of "Writing R extensions" explains that these may be undocumented
>>> and unstable, but I have a couple of questions:
>>> 
>>> 1) are they platform independent? I presume they are...
>> 
>> 
>> Only in sense that they have a common interface.
>> 
>>> 2) What's the appropriate way to link against them? On Linux x86, I can
>>> do this with the Makevars:
>> 
>> 
>> You can, but that is a module and not a library and so it does not work on 
>> MacOS X and may well not work on Windows (you would be lucky prior to R 
>> 2.3.0).
>> 
>> I wonder why you need a C interface at all.  There is serialize() and 
>> socket connections are available at R level.  Below that, Rsockopen etc are 
>> exported from R itself and underly make.socket etc.
>
> I may not need it (or get to use it portably), but as far as using Rsockopen, 
> etc. am I right in assuming that a package writer would have to copy the 
> declarations from src/main/basedecl.h into his/her own code in order to 
> utilize them? This seems odd when there's already an exposed (although 
> undocumented) interface with R_Sock*, so what's the point of having 
> R_ext/R-ftp-http.h? Is it just for some xml package?

Yes.  It was written as an internal header.  As you have discovered, the 
interface is not actually exposed.

> On a related note, how do I serialize() an R object to a database table 
> column of type BLOB? I've tried using RODBC but was unsuccessfully (see 
> R-sig-DB in Feb archive). I've also looked into RMySQL/DBI but I don't think 
> it's supported yet.

Since BLOB is not a standard SQL type (AFAIK), ODBC seems not to support 
it.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Utilizing the internet module
Prof Brian Ripley