Learn R Programming

Rserve (version 1.8-13)

self: Functions usable for R code run inside Rserve

Description

The following functions can only be used inside Rserve, they cannot be used in stand-alone R. They interact with special features of Rserve. All commands below will succeed only if Rserve has been started with r-control enable configuration setting for security reasons.

self.ctrlEval issues a control command to the Rserve parent instance that evaluates the given expression in the server. The expression is only queued for evaluation which will happen asynchronously in the server (see RSserverEval in RSclient package for details). Note that the current session is unaffected by the command.

self.ctrlSource issues a control command to the Rserve parent instance to source the given file in the server, see RSserverSource in the RSclient package for details.

self.oobSend sends a out-of-band (OOB) message with the encoded content of what to the client connected to this session. The OOB facility must be enabled in the Rserve configuration (using oob enable) and the client must support OOB messages for this to be meaningful. This facility is not used by Rserve itself, it is offered to specialized applications (e.g. Cairo supports asynchronous notification of web clients using WebSockets-QAP1 tunnel to dynamically update graphics on the web during evaluation).

self.oobMessage is like self.oobSend except that it waits for a response and returns the response.

Usage

self.ctrlEval(expr)
self.ctrlSource(file)
self.oobSend(what, code = 0L)
self.oobMessage(what, code = 0L)

Value

oobMessage returns data contained in the response message.

All other functions return TRUE (invisibly).

Arguments

expr

R expression to evaluate remotely

file

path to a file that will be sourced into the main instance

what

object to include as the payload fo the message

code

user-defined message code that will be ORed with the OOB_SEND/OOB_MSG message code

Author

Simon Urbanek

Examples

Run this code
if (FALSE) {
  self.ctrlEval("a <- rnorm(10)")
  self.oobSend(list("url","http://foo/bar"))
}

Run the code above in your browser using DataLab