Implements a socket server allowing to connect clients to R.
= svSocket News
== Changes in svSocket 0.9-57
== Changes in svSocket 0.9-56
== Changes in svSocket 0.9-55
evalServer now can pass objects that contain pointers as attributes (e.g., data.table objects), but the pointers are set to NULL on the client side (they are probably meaningless there). This may result in corrupted or malfunctioning objects, unless they can cope with such a situation, like data.table object do.
Slightly reworked examples of ?evalServer and added a details section to explain which R objects cannot be transferred between R processes through evalServer().
== Changes in svSocket 0.9-54
An example is added to ?sendSocketClients.
It now needs svMisc >= 0.9-68, and it uses SciViews:TempEnv instead of TempEnv to store data from clients and servers (stateful conditions).
== Changes in svSocket 0.9-53
== Changes in svSocket 0.9-52
processSocket() now uses the new version of captureAll() from svMisc >= 0.9-62 with the split = and echo = arguments. Commands and results are now interwoven like in a normal console output.
The socket server now accepts and respond to 'HEAD' HTTP requests. It can process simple R commands in synchronous mode. This shoumld be reserved to sense if a R server is running on a port, and which one is it (socket or http) It is also used to change config parameters like options(width = ...) in a synchronous way before running 'more serious' code asynchronously.
Callback mechanisms used by the server now moved to svKomodo package, so that it can also be used by svHttp.
== Changes in svSocket 0.9-51
== Changes in svSocket 0.9-50
processSocket() now calls parseText() from svMisc >= 0.9-60 instead of Parse().
When Echo is TRUE and we are not in hidden mode, results are echoed directly in the R console as they are available, and not any more at the end of the calculation.
A new type of connection is added: a 'sockclientconn' that allows to redirect output (append or write-only, for the moment) to a SciViews socket client. It is created by using socketClientConnection() and has a specific summary() method. It inherits from a 'sockconn' object and should behave similarly.
parSocket() has a new argument, clientsocket, that allows to pass the Tcl name of the client's socket. This is required to use socketClientConnection() by providing only the client's name (and thus, the required Tcl socket name is obtained through the property parSocket(....)$clientsocket, if it was previously recorded). The default process function, processSocket() is changed to record the Tcl socket in parSocket() each time a client connects to the server and sends its first command through it.
== Changes in svSocket 0.9-49
== Changes in svSocket 0.9-48
== Changes in svSocket 0.9-47
== Changes in svSocket 0.9-46
evalServer() slightly reworked
sendSocketServer() eliminated (superseeded by evalServer())
== Changes in svSocket 0.9-45
== Changes in svSocket 0.9-44
== Changes in svSocket 0.9-43
Example added in processSocket(), implementing a simple REPL
A new function, sendSocketServer() is added to send and evaluate commands from one R instance (client) to another one (a R socket server)
== Changes in svSocket 0.9-43
== Changes in svSocket 0.9-42
== Changes in svSocket 0.9-41
Correction in startSocketServer(): the SocketServerProc function was not protected against garbage collection. Consequently, the socket server stopped working at unpredictable events.
Correction of a bug preventing processSocket() to display error messages. Instead, I got: Error in ngettext(1, "Error: ", domain = "R") : argument "msg2" is missing, with no default
== Changes in svSocket 0.9-40
This is the first version distributed on R-forge. It is completely refactored from older versions (on CRAN since 2003) to make it run with SciViews-K and Komodo Edit (Tinn-R is also supported, but not SciViews-R Console any more).