• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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_PRINTING_PRINT_JOB_WORKER_OWNER_H__
6 #define CHROME_BROWSER_PRINTING_PRINT_JOB_WORKER_OWNER_H__
7 #pragma once
8 
9 #include "base/memory/ref_counted.h"
10 #include "printing/printing_context.h"
11 
12 class MessageLoop;
13 
14 namespace printing {
15 
16 class PrintJobWorker;
17 class PrintSettings;
18 
19 class PrintJobWorkerOwner
20     : public base::RefCountedThreadSafe<PrintJobWorkerOwner> {
21  public:
22   // Finishes the initialization began by PrintJobWorker::GetSettings().
23   // Creates a new PrintedDocument if necessary. Solely meant to be called by
24   // PrintJobWorker.
25   virtual void GetSettingsDone(const PrintSettings& new_settings,
26                                PrintingContext::Result result) = 0;
27 
28   // Detach the PrintJobWorker associated to this object.
29   virtual PrintJobWorker* DetachWorker(PrintJobWorkerOwner* new_owner) = 0;
30 
31   // Retrieves the message loop that is expected to process GetSettingsDone.
32   virtual MessageLoop* message_loop() = 0;
33 
34   // Access the current settings.
35   virtual const PrintSettings& settings() const = 0;
36 
37   // Cookie uniquely identifying the PrintedDocument and/or loaded settings.
38   virtual int cookie() const = 0;
39 
40  protected:
41   friend class base::RefCountedThreadSafe<PrintJobWorkerOwner>;
42 
~PrintJobWorkerOwner()43   virtual ~PrintJobWorkerOwner() {}
44 };
45 
46 }  // namespace printing
47 
48 #endif  // CHROME_BROWSER_PRINTING_PRINT_JOB_WORKER_OWNER_H__
49