update_engine: Change OperationsGenerator to use BlobFileWriter
BUG=chromium:517280
TEST=Unit test for BlobFileWriter
Change-Id: Ib49925676331acee97ff6b4cec38a81ca8b157a1
Reviewed-on: https://chromium-review.googlesource.com/291441
Tested-by: Sen Jiang <senj@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Sen Jiang <senj@chromium.org>
diff --git a/payload_generator/annotated_operation.cc b/payload_generator/annotated_operation.cc
index 2aa79fc..2a0a0de 100644
--- a/payload_generator/annotated_operation.cc
+++ b/payload_generator/annotated_operation.cc
@@ -25,15 +25,13 @@
}
} // namespace
-bool AnnotatedOperation::SetOperationBlob(chromeos::Blob* blob, int data_fd,
- off_t* data_file_size) {
- TEST_AND_RETURN_FALSE(utils::PWriteAll(data_fd,
- blob->data(),
- blob->size(),
- *data_file_size));
+bool AnnotatedOperation::SetOperationBlob(chromeos::Blob* blob,
+ BlobFileWriter* blob_file) {
op.set_data_length(blob->size());
- op.set_data_offset(*data_file_size);
- *data_file_size += blob->size();
+ off_t data_offset = blob_file->StoreBlob(*blob);
+ if (data_offset == -1)
+ return false;
+ op.set_data_offset(data_offset);
return true;
}