Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / document_scan / document_scan_interface_chromeos.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_BROWSER_EXTENSIONS_API_DOCUMENT_SCAN_DOCUMENT_SCAN_INTERFACE_CHROMEOS_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_DOCUMENT_SCAN_DOCUMENT_SCAN_INTERFACE_CHROMEOS_H_
7
8 #include "chrome/browser/extensions/api/document_scan/document_scan_interface.h"
9 #include "chromeos/dbus/lorgnette_manager_client.h"
10
11 namespace extensions {
12
13 namespace api {
14
15 class DocumentScanInterfaceChromeos : public DocumentScanInterface {
16  public:
17   DocumentScanInterfaceChromeos();
18   ~DocumentScanInterfaceChromeos() override;
19
20   void ListScanners(const ListScannersResultsCallback& callback) override;
21   void Scan(const std::string& scanner_name,
22             ScanMode mode,
23             int resolution_dpi,
24             const ScanResultsCallback& callback) override;
25
26  private:
27   friend class DocumentScanInterfaceChromeosTest;
28
29   void OnScannerListReceived(
30       const ListScannersResultsCallback& callback,
31       bool succeeded,
32       const chromeos::LorgnetteManagerClient::ScannerTable &scanners);
33   void OnScanCompleted(const ScanResultsCallback &callback,
34                        bool succeeded,
35                        const std::string& image_data);
36   chromeos::LorgnetteManagerClient* GetLorgnetteManagerClient();
37
38   // Guaranteed to outlive |this|.
39   chromeos::LorgnetteManagerClient* lorgnette_manager_client_;
40
41   DISALLOW_COPY_AND_ASSIGN(DocumentScanInterfaceChromeos);
42 };
43
44 }  // namespace api
45
46 }  // namespace extensions
47
48 #endif  // CHROME_BROWSER_EXTENSIONS_API_DOCUMENT_SCAN_DOCUMENT_SCAN_INTERFACE_CHROMEOS_H_