Hello,
For non-blocking access to R through sockets, you should also look at
svSockets. It may be more appropriate than RServer for feeding data to R,
while you have another process running in R that do smething like updating
a graph, or some other calculations.
Best,
Philippe Grosjean
On 20/07/10 14:10, Martin Kerr wrote:
Sorry I phrased that badly.
What I'm trying to do is asynchronously add data to R, i.e. a program
will periodically dump some readings to the Rserver and then later on
another program will run some analysis scripts on them.
I have managed to add the data via CMD_detachedVoidEval as you suggested.
How exactly do I go about attaching to the session again? I know it
involves some form of session key that comes back from the detach call,
but what from does it take? And how do I use this?
Thanks AgainMartin
Subject: Re: [Rd] Non-blocking Eval
From: simon.urbanek at r-project.org
Date: Mon, 19 Jul 2010 11:34:29 -0400
CC: r-devel at r-project.org
To: mk2391 at hotmail.com
On Jul 19, 2010, at 10:58 AM, Martin Kerr wrote:
Hello,
I'm currently working with the C++ version of the Rserve Client as part
of a student project.
Is there an implementation of a non-blocking interface to Rserve in
C++? I can find one via the Java JRI but no equivalent in C++.
(Please note that stats-rosuda-devel is the correct list for this.)
I'm not quite sure what you mean, because in JRI there is idleEval()
which is non-blocking in the sense that it doesn't do anything if R is
busy but that doesn't apply to Rserve as by definition R cannot be busy
there. There is no non-blocking interface to JRI - all calls are
synchronous.
If your question is whether you can start an evaluation in Rserve and
not wait for the result then there is CMD_detachedVoidEval in Rserve,
but the C++ client only implements a subset of the API which does not
include that -- however, it is trivial to implement (just send a request
with CMD_detachedVoidEval as there is nothing to decode).
Cheers,
Simon