| Index: base/file_util_proxy.cc
|
| ===================================================================
|
| --- base/file_util_proxy.cc (revision 61463)
|
| +++ base/file_util_proxy.cc (working copy)
|
| @@ -498,7 +498,7 @@
|
| class RelayWrite : public MessageLoopRelay {
|
| public:
|
| RelayWrite(base::PlatformFile file,
|
| - long long offset,
|
| + int64 offset,
|
| const char* buffer,
|
| int bytes_to_write,
|
| base::FileUtilProxy::ReadWriteCallback* callback)
|
| @@ -582,11 +582,11 @@
|
| base::Time last_modified_time_;
|
| };
|
|
|
| -class RelayTruncate : public RelayWithStatusCallback {
|
| +class RelayTruncatePlatformFile : public RelayWithStatusCallback {
|
| public:
|
| - RelayTruncate(base::PlatformFile file,
|
| - int64 length,
|
| - base::FileUtilProxy::StatusCallback* callback)
|
| + RelayTruncatePlatformFile(base::PlatformFile file,
|
| + int64 length,
|
| + base::FileUtilProxy::StatusCallback* callback)
|
| : RelayWithStatusCallback(callback),
|
| file_(file),
|
| length_(length) {
|
| @@ -603,6 +603,39 @@
|
| int64 length_;
|
| };
|
|
|
| +class RelayTruncate : public RelayWithStatusCallback {
|
| + public:
|
| + RelayTruncate(const FilePath& path,
|
| + int64 length,
|
| + base::FileUtilProxy::StatusCallback* callback)
|
| + : RelayWithStatusCallback(callback),
|
| + path_(path),
|
| + length_(length) {
|
| + }
|
| +
|
| + protected:
|
| + virtual void RunWork() {
|
| + base::PlatformFileError error_code(base::PLATFORM_FILE_ERROR_FAILED);
|
| + base::PlatformFile file =
|
| + base::CreatePlatformFile(
|
| + path_,
|
| + base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_WRITE,
|
| + NULL,
|
| + &error_code);
|
| + if (error_code != base::PLATFORM_FILE_OK) {
|
| + set_error_code(error_code);
|
| + return;
|
| + }
|
| + if (!base::TruncatePlatformFile(file, length_))
|
| + set_error_code(base::PLATFORM_FILE_ERROR_FAILED);
|
| + base::ClosePlatformFile(file);
|
| + }
|
| +
|
| + private:
|
| + FilePath path_;
|
| + int64 length_;
|
| +};
|
| +
|
| class RelayFlush : public RelayWithStatusCallback {
|
| public:
|
| RelayFlush(base::PlatformFile file,
|
| @@ -782,13 +815,23 @@
|
| bool FileUtilProxy::Truncate(
|
| scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| PlatformFile file,
|
| - long long length,
|
| + int64 length,
|
| StatusCallback* callback) {
|
| return Start(FROM_HERE, message_loop_proxy,
|
| - new RelayTruncate(file, length, callback));
|
| + new RelayTruncatePlatformFile(file, length, callback));
|
| }
|
|
|
| // static
|
| +bool FileUtilProxy::Truncate(
|
| + scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| + const FilePath& path,
|
| + int64 length,
|
| + StatusCallback* callback) {
|
| + return Start(FROM_HERE, message_loop_proxy,
|
| + new RelayTruncate(path, length, callback));
|
| +}
|
| +
|
| +// static
|
| bool FileUtilProxy::Flush(
|
| scoped_refptr<MessageLoopProxy> message_loop_proxy,
|
| PlatformFile file,
|
|
|