Home | History | Annotate | Download | only in fileapi
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef WEBKIT_BROWSER_FILEAPI_REMOVE_OPERATION_DELEGATE_H_
      6 #define WEBKIT_BROWSER_FILEAPI_REMOVE_OPERATION_DELEGATE_H_
      7 
      8 #include <stack>
      9 
     10 #include "webkit/browser/fileapi/recursive_operation_delegate.h"
     11 
     12 namespace fileapi {
     13 
     14 class RemoveOperationDelegate : public RecursiveOperationDelegate {
     15  public:
     16   RemoveOperationDelegate(FileSystemContext* file_system_context,
     17                           const FileSystemURL& url,
     18                           const StatusCallback& callback);
     19   virtual ~RemoveOperationDelegate();
     20 
     21   // RecursiveOperationDelegate overrides:
     22   virtual void Run() OVERRIDE;
     23   virtual void RunRecursively() OVERRIDE;
     24   virtual void ProcessFile(const FileSystemURL& url,
     25                            const StatusCallback& callback) OVERRIDE;
     26   virtual void ProcessDirectory(const FileSystemURL& url,
     27                                 const StatusCallback& callback) OVERRIDE;
     28   virtual void PostProcessDirectory(const FileSystemURL& url,
     29                                     const StatusCallback& callback) OVERRIDE;
     30 
     31  private:
     32   void DidTryRemoveFile(base::File::Error error);
     33   void DidTryRemoveDirectory(base::File::Error remove_file_error,
     34                              base::File::Error remove_directory_error);
     35   void DidRemoveFile(const StatusCallback& callback,
     36                      base::File::Error error);
     37 
     38   FileSystemURL url_;
     39   StatusCallback callback_;
     40   base::WeakPtrFactory<RemoveOperationDelegate> weak_factory_;
     41   DISALLOW_COPY_AND_ASSIGN(RemoveOperationDelegate);
     42 };
     43 
     44 }  // namespace fileapi
     45 
     46 #endif  // WEBKIT_BROWSER_FILEAPI_REMOVE_OPERATION_DELEGATE_H_
     47