This function locks a given R object x by saving it to a file with a .rdlock extension.
If the file already exists (and overwrite is FALSE), the existing file is read and its contents returned.
Arguments
- x
 The R object to be locked and saved.
- name
 Optional; the name to be used for the saved file. If NULL, a name is generated using the hash of the expression that defines
x. If provided, it must be a single non-empty character string.- path
 Optional; the directory path where the data file is to be saved. Defaults to the value of the 'robonomistClient.datalock.path' option. If NULL, the file is saved in the current working directory.
- overwrite
 Logical; whether to overwrite the existing data file. Defaults to FALSE, meaning that if the file exists, it is read and returned without overwriting.
Value
Returns the data x after saving or reading it from the file.
If overwrite is TRUE, x is returned after saving.
If overwrite is FALSE and the file exists, the contents of the file are returned.
If the file does not exist, x is saved and then returned.
Note
This function uses the 'hash' function from the 'rlang' package to generate a file name if no name is provided.
Examples
x <- runif(1) |> datalock(name = "example", path = "fixed_data")
y <- runif(1) |> datalock(name = "example", path = "fixed_data")
identical(x, y)
#> [1] TRUE
# This will save `y` to a file named "example.rdlock" in the "fixed_data" path.
# If the file "example.rdlock" already exists, `x` will to be evalated but read from the file.
