Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "mojo/data_pipe_utils/data_pipe_utils.h" | 5 #include "mojo/data_pipe_utils/data_pipe_utils.h" |
| 6 | 6 |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 322 base::ScopedFILE fp(base::OpenFile(destination, "wb")); | 322 base::ScopedFILE fp(base::OpenFile(destination, "wb")); |
| 323 if (!fp) { | 323 if (!fp) { |
| 324 LOG(ERROR) << "OpenFile('" << destination.value() | 324 LOG(ERROR) << "OpenFile('" << destination.value() |
| 325 << "'failed in BlockingCopyToFile"; | 325 << "'failed in BlockingCopyToFile"; |
| 326 return false; | 326 return false; |
| 327 } | 327 } |
| 328 return BlockingCopyHelper(source.Pass(), | 328 return BlockingCopyHelper(source.Pass(), |
| 329 base::Bind(&CopyToFileHelper, fp.get())); | 329 base::Bind(&CopyToFileHelper, fp.get())); |
| 330 } | 330 } |
| 331 | 331 |
| 332 bool BlockingCopyToTempFile(ScopedDataPipeConsumerHandle source, | |
| 333 FILE** fpp) { | |
|
viettrungluu
2015/09/01 23:36:25
Possibly this should be a base::ScopedFILE*.
Or y
Sean Klein
2015/09/01 23:57:52
Out of curiosity, what is the difference between a
jamesr
2015/09/02 00:06:39
base::ScopedFILE's destructor calls fclose()
| |
| 334 base::FilePath path; | |
| 335 *fpp = (base::CreateAndOpenTemporaryFile(&path)); | |
| 336 if (!*fpp) { | |
| 337 LOG(ERROR) << "CreateAndOpenTemporaryFile failed in" | |
| 338 << "BlockingCopyToTempFile"; | |
| 339 return false; | |
| 340 } | |
| 341 if (unlink(path.value().c_str())) { | |
| 342 LOG(ERROR) << "Failed to unlink temporary file\n"; | |
|
viettrungluu
2015/09/01 23:36:25
Also: no \n needed here.
More importantly, it's pe
Sean Klein
2015/09/01 23:57:52
Done.
| |
| 343 return false; | |
| 344 } | |
| 345 return BlockingCopyHelper(source.Pass(), | |
| 346 base::Bind(&CopyToFileHelper, *fpp)); | |
| 347 } | |
| 348 | |
| 332 void CopyToFile(ScopedDataPipeConsumerHandle source, | 349 void CopyToFile(ScopedDataPipeConsumerHandle source, |
| 333 const base::FilePath& destination, | 350 const base::FilePath& destination, |
| 334 base::TaskRunner* task_runner, | 351 base::TaskRunner* task_runner, |
| 335 const base::Callback<void(bool)>& callback) { | 352 const base::Callback<void(bool)>& callback) { |
| 336 new CopyToFileHandler(source.Pass(), destination, task_runner, callback); | 353 new CopyToFileHandler(source.Pass(), destination, task_runner, callback); |
| 337 } | 354 } |
| 338 | 355 |
| 339 void CopyFromFile(const base::FilePath& source, | 356 void CopyFromFile(const base::FilePath& source, |
| 340 ScopedDataPipeProducerHandle destination, | 357 ScopedDataPipeProducerHandle destination, |
| 341 uint32_t skip, | 358 uint32_t skip, |
| 342 base::TaskRunner* task_runner, | 359 base::TaskRunner* task_runner, |
| 343 const base::Callback<void(bool)>& callback) { | 360 const base::Callback<void(bool)>& callback) { |
| 344 new CopyFromFileHandler(source, destination.Pass(), skip, task_runner, | 361 new CopyFromFileHandler(source, destination.Pass(), skip, task_runner, |
| 345 callback); | 362 callback); |
| 346 } | 363 } |
| 347 | 364 |
| 348 } // namespace common | 365 } // namespace common |
| 349 } // namespace mojo | 366 } // namespace mojo |
| OLD | NEW |