Skip to contents

Walks the base_daf_repository scalar chain rooted at leaf, opening each level with open_daf(). Returns a chain_reader (mode = "r") or chain_writer (mode = "r+", only the leaf is writable).

Usage

complete_daf(leaf, mode = "r", name = NULL)

Arguments

leaf

Filesystem path to the leaf daf.

mode

"r" or "r+".

name

Optional name.

Value

A DafReader or DafWriter.

Examples

tmp_root <- tempfile(); dir.create(tmp_root)
base_dir <- file.path(tmp_root, "base")
new_dir <- file.path(tmp_root, "new")
files_daf(base_dir, name = "base", mode = "w+")
#> <dafr::FilesDaf>
#>  @ name                  : chr "base"
#>  @ internal              :<environment: 0x55f02eb58c18> 
#>  @ cache                 :<environment: 0x55f02eb57f30> 
#>  @ axis_version_counter  :<environment: 0x55f02eb5a240> 
#>  @ vector_version_counter:<environment: 0x55f02eb59f68> 
#>  @ matrix_version_counter:<environment: 0x55f02eb59c90> 
new <- files_daf(new_dir, name = "new", mode = "w+")
complete_chain(
    base_daf = open_daf(base_dir, "r"),
    new_daf = new, absolute = TRUE
)
#> <dafr::WriteChainDaf>
#>  @ name                  : chr "new"
#>  @ internal              :<environment: 0x55f02f36d440> 
#>  @ cache                 :<environment: 0x55f02f36d0f8> 
#>  @ axis_version_counter  :<environment: 0x55f02f36f408> 
#>  @ vector_version_counter:<environment: 0x55f02f36f130> 
#>  @ matrix_version_counter:<environment: 0x55f02f36ee58> 
#>  @ dafs                  :List of 2
#>  .. $ : <dafr::FilesDafReadOnly>
#>  ..  ..@ name                  : chr "base"
#>  ..  ..@ internal              :<environment: 0x55f02ceb2138> 
#>  ..  ..@ cache                 :<environment: 0x55f0328b1ad8> 
#>  ..  ..@ axis_version_counter  :<environment: 0x55f0328b3de8> 
#>  ..  ..@ vector_version_counter:<environment: 0x55f0328b3b10> 
#>  ..  ..@ matrix_version_counter:<environment: 0x55f0328b3838> 
#>  .. $ : <dafr::FilesDaf>
#>  ..  ..@ name                  : chr "new"
#>  ..  ..@ internal              :<environment: 0x55f030c674e8> 
#>  ..  ..@ cache                 :<environment: 0x55f030c66800> 
#>  ..  ..@ axis_version_counter  :<environment: 0x55f030c68b10> 
#>  ..  ..@ vector_version_counter:<environment: 0x55f030c68838> 
#>  ..  ..@ matrix_version_counter:<environment: 0x55f030c68560> 
#>  @ writer                : <dafr::FilesDaf>
#>  .. @ name                  : chr "new"
#>  .. @ internal              :<environment: 0x55f030c674e8> 
#>  .. @ cache                 :<environment: 0x55f030c66800> 
#>  .. @ axis_version_counter  :<environment: 0x55f030c68b10> 
#>  .. @ vector_version_counter:<environment: 0x55f030c68838> 
#>  .. @ matrix_version_counter:<environment: 0x55f030c68560> 
chain <- complete_daf(new_dir, "r")