1// Copyright 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_LOCAL_DISCOVERY_PWG_RASTER_CONVERTER_H_
6#define CHROME_BROWSER_LOCAL_DISCOVERY_PWG_RASTER_CONVERTER_H_
7
8#include "base/callback.h"
9#include "base/memory/ref_counted_memory.h"
10
11namespace base {
12class FilePath;
13}
14
15namespace gfx {
16class Size;
17}
18
19namespace printing {
20class PdfRenderSettings;
21struct PwgRasterSettings;
22}
23
24namespace local_discovery {
25
26class PWGRasterConverter {
27 public:
28  // Callback for when the PDF is converted to a PWG raster.
29  // |success| denotes whether the conversion succeeded.
30  // |temp_file| is the path to the temp file (owned by the converter) that
31  //     contains the PWG raster data.
32  typedef base::Callback<void(bool /*success*/,
33                              const base::FilePath& /*temp_file*/)>
34          ResultCallback;
35  virtual ~PWGRasterConverter() {}
36
37  static scoped_ptr<PWGRasterConverter> CreateDefault();
38
39  virtual void Start(base::RefCountedMemory* data,
40                     const printing::PdfRenderSettings& conversion_settings,
41                     const printing::PwgRasterSettings& bitmap_settings,
42                     const ResultCallback& callback) = 0;
43};
44
45}  // namespace local_discovery
46
47#endif  // CHROME_BROWSER_LOCAL_DISCOVERY_PWG_RASTER_CONVERTER_H_
48