R: Reference object serialisation and deserialisation

isDeserialisable {tractor.base} | R Documentation

## Reference object serialisation and deserialisation

### Description

Rather than using R's `save` and `load` functions directly for reference objects, TractoR uses the `SerialisableObject` class and these functions to save and load objects. The main difference is that this approach stores only the data in the object, and not the functions which operate on them. This helps backward compatibility when new member functions are added.

### Usage

    isDeserialisable(object, expectedClass = NULL)

    serialiseReferenceObject(object, file = NULL)

    deserialiseReferenceObject(file = NULL, object = NULL, raw = FALSE)

    registerDeserialiser(className, deserialiser)

### Arguments

`object` | For `serialiseReferenceObject`, a list or object inheriting from `SerialisableObject`. For other functions, an object in (raw) serialised form. See Details.
`expectedClass` | A class name which the object is expected to inherit. Any class is acceptable if this parameter is `NULL`.
`file` | A file name to deserialise from.
`raw` | If `TRUE`, the raw serialised object is returned; otherwise the object is converted back to its original class.
`className` | A string naming a class to be handled by the specified deserialiser.
`deserialiser` | A function taking as its argument a list of serialised fields, and returning a suitable deserialised object.

### Details

The `serialiseReferenceObject` function, or the `serialise` member function of the `SerialisableObject` class can be used to create and/or `save` a version of an object which contains a hierarchical representation of the data embedded in it. These serialised objects are standard R lists, with an `"originalClass"` attribute describing the class of the original object. The `deserialiseReferenceObject` function can be used to deserialise them. Custom deserialisers can be specified using `registerDeserialiser`, typically for legacy classes.

Note that this should generally NOT be used as the primary mechanism for saving and loading `MriImage` objects. Saving to standard NIfTI/Analyze format is usually preferable, and can be done using `writeImageFile`.

### Value

`isDeserialisable` returns `TRUE` if the `object` is deserialisable and inherits from the specified class. `deserialiseReferenceObject` returns a raw or reconstituted object after deserialisation.

### Author(s)

Jon Clayden

### References

Please cite the following reference when using TractoR in your work:

J.D. Clayden, S. Muñoz Maniega, A.J. Storkey, M.D. King, M.E. Bastin & C.A. Clark (2011). TractoR: Magnetic resonance imaging and tractography with R. Journal of Statistical Software 44(8):1-18. http://www.jstatsoft.org/v44/i08/.

### See Also

`SerialisableObject`, `save`, `load`, `writeImageFile`.

[Package tractor.base version 3.2.2 Index]