Learn R Programming

nanonext (version 1.10.3)

serial_config: Create Serialization Configuration

Description

Returns a serialization configuration, which may be set on a Socket for custom serialization and unserialization of non-system reference objects, allowing these to be sent and received between different R sessions. Once set, the functions apply to all send and receive operations performed in mode 'serial' over the Socket, or Context created from the Socket.

Usage

serial_config(class, sfunc, ufunc)

Value

A list comprising the configuration. This should be set on a Socket using opt<-() with option name "serial".

Arguments

class

a character string (or vector) of the class of object custom serialization functions are applied to, e.g. 'ArrowTabular' or c('torch_tensor', 'ArrowTabular').

sfunc

a function (or list of functions) that accepts a reference object inheriting from class and returns a raw vector.

ufunc

a function (or list of functions) that accepts a raw vector and returns a reference object.

Details

This feature utilises the 'refhook' system of R native serialization.

If sfunc errors during serialization, the error propagates to the caller and no message is sent.

If ufunc errors during unserialization, the error is caught and the object instead unserializes as an 'errorValue' 1000 ('Internal error detected'), rather than the error propagating to the caller.

Examples

Run this code
cfg <- serial_config("test_cls", function(x) serialize(x, NULL), unserialize)
cfg

cfg <- serial_config(
  c("class_one", "class_two"),
  list(function(x) serialize(x, NULL), function(x) serialize(x, NULL)),
  list(unserialize, unserialize)
)
cfg

s <- socket()
opt(s, "serial") <- cfg

# provide an empty list to remove registered functions
opt(s, "serial") <- list()

close(s)

Run the code above in your browser using DataLab