Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / utility / image_writer / image_writer_handler.h
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_UTILITY_IMAGE_WRITER_IMAGE_WRITER_HANDLER_H_
6 #define CHROME_UTILITY_IMAGE_WRITER_IMAGE_WRITER_HANDLER_H_
7
8 #include <string>
9
10 #include "chrome/utility/image_writer/image_writer.h"
11 #include "chrome/utility/utility_message_handler.h"
12 #include "ipc/ipc_message.h"
13
14 namespace base {
15 class FilePath;
16 }
17
18 namespace image_writer {
19
20 // A handler for messages related to writing images.  This class is added as a
21 // handler in chrome::ChromeContentUtilityClient.
22 class ImageWriterHandler : public chrome::UtilityMessageHandler {
23  public:
24   ImageWriterHandler();
25   virtual ~ImageWriterHandler();
26
27   // Methods for sending the different messages back to the browser process.
28   // Generally should be called by chrome::image_writer::ImageWriter.
29   virtual void SendSucceeded();
30   virtual void SendCancelled();
31   virtual void SendFailed(const std::string& message);
32   virtual void SendProgress(int64 progress);
33
34  private:
35   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
36
37   // Small wrapper for sending on the UtilityProcess.
38   void Send(IPC::Message* msg);
39
40   // Message handlers.
41   void OnWriteStart(const base::FilePath& image, const base::FilePath& device);
42   void OnVerifyStart(const base::FilePath& image, const base::FilePath& device);
43   void OnCancel();
44
45   scoped_ptr<ImageWriter> image_writer_;
46 };
47
48 }  // namespace image_writer
49
50 #endif  // CHROME_UTILITY_IMAGE_WRITER_IMAGE_WRITER_HANDLER_H_