Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Side by Side Diff: chrome/browser/chromeos/imageburner/burn_device_handler.h

Issue 679633002: chromeos: Remove legacy code for chrome://imageburner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unit_tests build Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 CHROME_BROWSER_CHROMEOS_IMAGEBURNER_BURN_DEVICE_HANDLER_H_
6 #define CHROME_BROWSER_CHROMEOS_IMAGEBURNER_BURN_DEVICE_HANDLER_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "base/callback.h"
12 #include "chromeos/dbus/cros_disks_client.h"
13 #include "chromeos/disks/disk_mount_manager.h"
14
15 namespace chromeos {
16 namespace imageburner {
17
18 // This is the implementation for the communication between BurnManager
19 // and DiskMountManager.
20 // The main reason this is NOT merged into BurnManager is to improve
21 // testability, since both BurnManager and DiskMountManager are singleton
22 // in real usage.
23 class BurnDeviceHandler : public disks::DiskMountManager::Observer {
24 public:
25 // Triggered when a burnable device is added or removed.
26 typedef base::Callback<void(const disks::DiskMountManager::Disk& disk)>
27 DiskCallback;
28
29 // This class takes the pointer of DiskMountManager to improve testability,
30 // although it is singleton in the real usage.
31 explicit BurnDeviceHandler(disks::DiskMountManager* disk_mount_manager);
32 virtual ~BurnDeviceHandler();
33
34 // |add_callback| will be called when a new burnable device is added with
35 // the device's information.
36 // |remove_callback| will be called when a burnable device is removed.
37 // Note: This class is designed to connect to only one BurnManager,
38 // so it supports only single callback for each add and remove intentionally
39 // (rather than ObserverList).
40 void SetCallbacks(const DiskCallback& add_callback,
41 const DiskCallback& remove_callback);
42
43 // Returns devices on which we can burn recovery image.
44 std::vector<disks::DiskMountManager::Disk> GetBurnableDevices();
45
46 // DiskMountManager::Observer overrides.
47 virtual void OnDiskEvent(
48 disks::DiskMountManager::DiskEvent event,
49 const disks::DiskMountManager::Disk* disk) override;
50 virtual void OnDeviceEvent(
51 disks::DiskMountManager::DeviceEvent event,
52 const std::string& device_path) override;
53 virtual void OnMountEvent(
54 disks::DiskMountManager::MountEvent event,
55 MountError error_code,
56 const disks::DiskMountManager::MountPointInfo& mount_info) override;
57 virtual void OnFormatEvent(
58 disks::DiskMountManager::FormatEvent event,
59 FormatError error_code,
60 const std::string& device_path) override;
61
62 private:
63 disks::DiskMountManager* disk_mount_manager_; // Not owned by this class.
64 DiskCallback add_callback_;
65 DiskCallback remove_callback_;
66
67 DISALLOW_COPY_AND_ASSIGN(BurnDeviceHandler);
68 };
69
70 } // namespace imageburner
71 } // namespace chromeos
72
73 #endif // CHROME_BROWSER_CHROMEOS_IMAGEBURNER_BURN_DEVICE_HANDLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/imageburner/burn_controller.cc ('k') | chrome/browser/chromeos/imageburner/burn_device_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698