Home | History | Annotate | Download | only in image_writer
      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 ChromeContentUtilityClient.
     22 class ImageWriterHandler : public 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_
     51