158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file.
458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef CHROME_BROWSER_LOCAL_DISCOVERY_CLOUD_PRINT_PRINTER_LIST_H_
658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define CHROME_BROWSER_LOCAL_DISCOVERY_CLOUD_PRINT_PRINTER_LIST_H_
758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include <string>
958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include <vector>
1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/values.h"
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/local_discovery/cloud_device_list_delegate.h"
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/local_discovery/gcd_api_flow.h"
1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace local_discovery {
1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class CloudPrintPrinterList : public CloudPrintApiFlowRequest {
1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public:
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  explicit CloudPrintPrinterList(CloudDeviceListDelegate* delegate);
2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual ~CloudPrintPrinterList();
2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void OnGCDAPIFlowError(GCDApiFlow::Status status) OVERRIDE;
2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void OnGCDAPIFlowComplete(
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      const base::DictionaryValue& value) OVERRIDE;
2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual GURL GetURL() OVERRIDE;
2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private:
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  bool FillPrinterDetails(const base::DictionaryValue& printer_value,
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                          CloudDeviceListDelegate::Device* printer_details);
3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  CloudDeviceListDelegate* delegate_;
3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)};
3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}  // namespace local_discovery
3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif  // CHROME_BROWSER_LOCAL_DISCOVERY_CLOUD_PRINT_PRINTER_LIST_H_
39