Revert 61462 - Add truncate and cancel for FileWriter; write and more tests will come in later CLs.
This CL also contains a fair amount of plumbing for the write call itself.

BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3599011

TBR=ericu@google.com
Review URL: http://codereview.chromium.org/3604006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61463 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: c9f87ae7ddfa0fc8ca2d20a91572198c42b81b18
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc
index d71f374..7f7b03a 100644
--- a/base/file_util_proxy.cc
+++ b/base/file_util_proxy.cc
@@ -498,7 +498,7 @@
 class RelayWrite : public MessageLoopRelay {
  public:
   RelayWrite(base::PlatformFile file,
-             int64 offset,
+             long long offset,
              const char* buffer,
              int bytes_to_write,
              base::FileUtilProxy::ReadWriteCallback* callback)
@@ -582,11 +582,11 @@
   base::Time last_modified_time_;
 };
 
-class RelayTruncatePlatformFile : public RelayWithStatusCallback {
+class RelayTruncate : public RelayWithStatusCallback {
  public:
-  RelayTruncatePlatformFile(base::PlatformFile file,
-                            int64 length,
-                            base::FileUtilProxy::StatusCallback* callback)
+  RelayTruncate(base::PlatformFile file,
+                int64 length,
+                base::FileUtilProxy::StatusCallback* callback)
       : RelayWithStatusCallback(callback),
         file_(file),
         length_(length) {
@@ -603,39 +603,6 @@
   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,
@@ -815,20 +782,10 @@
 bool FileUtilProxy::Truncate(
     scoped_refptr<MessageLoopProxy> message_loop_proxy,
     PlatformFile file,
-    int64 length,
+    long long length,
     StatusCallback* callback) {
   return Start(FROM_HERE, message_loop_proxy,
-               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));
+               new RelayTruncate(file, length, callback));
 }
 
 // static
diff --git a/base/file_util_proxy.h b/base/file_util_proxy.h
index 32b7863..081c11b 100644
--- a/base/file_util_proxy.h
+++ b/base/file_util_proxy.h
@@ -138,7 +138,7 @@
 
   // Writes to a file. If |offset| is greater than the length of the file,
   // |false| is returned. On success, the file pointer is moved to position
-  // |offset + bytes_to_write| in the file. The callback can be NULL.
+  // |offset + bytes_to_write| in the file. If The callback can be NULL.
   static bool Write(
       scoped_refptr<MessageLoopProxy> message_loop_proxy,
       base::PlatformFile file,
@@ -169,16 +169,7 @@
   static bool Truncate(
       scoped_refptr<MessageLoopProxy> message_loop_proxy,
       base::PlatformFile file,
-      int64 length,
-      StatusCallback* callback);
-
-  // Truncates a file to the given length. If |length| is greater than the
-  // current length of the file, the file will be extended with zeroes.
-  // The callback can be NULL.
-  static bool Truncate(
-      scoped_refptr<MessageLoopProxy> message_loop_proxy,
-      const FilePath& path,
-      int64 length,
+      long long length,
       StatusCallback* callback);
 
   // Flushes a file. The callback can be NULL.