diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 01:54:36 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 01:54:36 +0000 |
commit | 64e199254481d6132c3a7ccdf9b3a743bff86a88 (patch) | |
tree | c10cdf03cbde8439d1d8a7070a6c7f9fdf10f517 /chromeos/dbus/image_burner_client.h | |
parent | 81a476c9ce1088345db02cf1647399d0e673d487 (diff) | |
download | chromium_src-64e199254481d6132c3a7ccdf9b3a743bff86a88.zip chromium_src-64e199254481d6132c3a7ccdf9b3a743bff86a88.tar.gz chromium_src-64e199254481d6132c3a7ccdf9b3a743bff86a88.tar.bz2 |
Move files inside chrome/browser/chromeos/dbus to chromeos/dbus
Move files in chrome/browser/chromeos/dbus/ to chromeos/dbus
Add chromeos/dbus/DEPS
Add chromeos.gyp:chromeos_test_support and chromeos.gyp:chromeos_unittests
Add CHROMEOS_EXPORT to classes
Move power related proto targets to chromeos.gyp
Rewrite and sort #includes
BUG=119583
TEST=component chromeos build success, checkdeps success
Review URL: https://chromiumcodereview.appspot.com/9838085
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131065 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/dbus/image_burner_client.h')
-rw-r--r-- | chromeos/dbus/image_burner_client.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/chromeos/dbus/image_burner_client.h b/chromeos/dbus/image_burner_client.h new file mode 100644 index 0000000..513496d --- /dev/null +++ b/chromeos/dbus/image_burner_client.h @@ -0,0 +1,74 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_DBUS_IMAGE_BURNER_CLIENT_H_ +#define CHROMEOS_DBUS_IMAGE_BURNER_CLIENT_H_ +#pragma once + +#include <string> + +#include "base/basictypes.h" +#include "base/callback.h" +#include "chromeos/chromeos_export.h" +#include "chromeos/dbus/dbus_client_implementation_type.h" + +namespace dbus { +class Bus; +} + +namespace chromeos { + +// ImageBurnerClient is used to communicate with the image burner. +// All method should be called from the origin thread (UI thread) which +// initializes the DBusThreadManager instance. +class CHROMEOS_EXPORT ImageBurnerClient { + public: + virtual ~ImageBurnerClient(); + + // A callback to be called when DBus method call fails. + typedef base::Callback<void()> ErrorCallback; + + // A callback to handle burn_finished signal. + typedef base::Callback<void(const std::string& target_path, + bool success, + const std::string& error)> BurnFinishedHandler; + + // A callback to handle burn_progress_update signal. + typedef base::Callback<void(const std::string& target_path, + int64 num_bytes_burnt, + int64 total_size)> BurnProgressUpdateHandler; + + // Burns the image |from_path| to the disk |to_path|. + virtual void BurnImage(const std::string& from_path, + const std::string& to_path, + ErrorCallback error_callback) = 0; + + // Sets callbacks as event handlers. + // |burn_finished_handler| is called when burn_finished signal is received. + // |burn_progress_update_handler| is called when burn_progress_update signal + // is received. + virtual void SetEventHandlers( + BurnFinishedHandler burn_finished_handler, + BurnProgressUpdateHandler burn_progress_update_handler) = 0; + + // Resets event handlers. After calling this method, nothing is done when + // signals are received. + virtual void ResetEventHandlers() = 0; + + // Factory function, creates a new instance and returns ownership. + // For normal usage, access the singleton via DBusThreadManager::Get(). + static ImageBurnerClient* Create(DBusClientImplementationType type, + dbus::Bus* bus); + + protected: + // Create() should be used instead. + ImageBurnerClient(); + + private: + DISALLOW_COPY_AND_ASSIGN(ImageBurnerClient); +}; + +} // namespace chromeos + +#endif // CHROMEOS_DBUS_IMAGE_BURNER_CLIENT_H_ |