@@ -30,7 +30,7 @@ REV_add_review_columns <- function(ns, data, choices, selected, roles, status) {
3030}
3131
3232REV_UI <- function (ns , roles ) {
33- choices <- setNames(c(" " , roles ), c(" --- " , make.names(roles )))
33+ choices <- setNames(c(" " , roles ), c(" <select reviewer role> " , make.names(roles )))
3434
3535 res <- list ()
3636 res [[" ui" ]] <- shiny :: tagList(
@@ -91,23 +91,45 @@ REV_load_annotation_info <- function(folder, review, dataset_lists) {
9191 tracked_vars <- setdiff(names(dataset ), c(id_vars , untracked_vars ))
9292
9393 base_timestamp <- NA_real_
94+ data_timestamps <- rep(NA_real_ , row_count )
9495 # <domain>_000.base
9596 fname <- file.path(dataset_list_folder , paste0(dataset_review_name , " _000.base" ))
9697 if (file.exists(fname )) {
9798 contents <- readBin(con = fname , raw(), n = file.size(fname ), endian = " little" )
98- base_info <- RS_parse_base(contents )
99- base_timestamp <- base_info [[" timestamp" ]]
99+ delta_fnames <- list.files(dataset_list_folder ,
100+ pattern = sprintf(" ^%s_[0-9]*.delta" , dataset_review_name ),
101+ full.names = TRUE )
102+ deltas <- local({
103+ res <- list ()
104+ for (fname in delta_fnames ){
105+ res [[length(res ) + 1 ]] <- readBin(con = fname , raw(), n = file.size(fname ), endian = " little" )
106+ }
107+ return (res )
108+ })
109+ base_info <- RS_load(contents , deltas ) # TODO? Call this RS_load_memory and write an RS_load() that works with fnames
100110 dataset_hash <- RS_hash_data_frame(dataset )
101111 if (! identical(dataset_hash , base_info [[" contents_hash" ]])) {
102- browser() # TODO: Produce delta
112+ new_delta <- RS_compute_delta_memory(state = base_info , dataset )
113+ deltas [[length(deltas ) + 1 ]] <- new_delta
114+ base_info <- RS_load(contents , deltas )
115+
116+ delta_number <- length(delta_fnames ) + 1
117+ fname <- file.path(dataset_list_folder , sprintf(" %s_%03d.delta" , dataset_review_name , delta_number ))
118+ writeBin(new_delta , fname )
119+ message(sprintf(" Produced new delta %s" , fname ))
103120 }
121+
122+ base_timestamp <- base_info [[" timestamp" ]]
123+ data_timestamps <- base_info [[" row_timestamps" ]]
104124 } else {
105125 contents <- RS_compute_base_memory(dataset_review_name , dataset , id_vars , tracked_vars )
106- base_timestamp <- RS_parse_base(contents )[[" timestamp" ]] # TODO: Consider providing timestamp to RS_compute_base_memory instead?
126+ base_info <- RS_parse_base(contents )
127+ base_timestamp <- base_info [[" timestamp" ]] # TODO: Consider providing timestamp to RS_compute_base_memory instead?
128+ data_timestamps <- base_info [[" row_timestamps" ]]
107129 writeBin(contents , fname )
108130 }
109131
110- dataset_review [[" data_timestamp" ]] <- base_timestamp
132+ dataset_review [[" data_timestamp" ]] <- data_timestamps
111133 dataset_review [[" timestamp" ]] <- base_timestamp
112134
113135 # <domain>_<ROLE>.review
0 commit comments