123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // Copyright (c) 2011 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef CHROME_BROWSER_PRINTING_PRINT_JOB_WORKER_OWNER_H__
- #define CHROME_BROWSER_PRINTING_PRINT_JOB_WORKER_OWNER_H__
- #include <memory>
- #include "base/location.h"
- #include "base/memory/ref_counted.h"
- #include "printing/printing_context.h"
- namespace base {
- class MessageLoop;
- class SequencedTaskRunner;
- } // namespace base
- namespace printing {
- class PrintJobWorker;
- class PrintSettings;
- class PrintJobWorkerOwner
- : public base::RefCountedThreadSafe<PrintJobWorkerOwner> {
- public:
- PrintJobWorkerOwner();
- // Finishes the initialization began by PrintJobWorker::GetSettings().
- // Creates a new PrintedDocument if necessary. Solely meant to be called by
- // PrintJobWorker.
- virtual void GetSettingsDone(const PrintSettings& new_settings,
- PrintingContext::Result result) = 0;
- // Detach the PrintJobWorker associated to this object.
- virtual std::unique_ptr<PrintJobWorker> DetachWorker(
- PrintJobWorkerOwner* new_owner) = 0;
- // Access the current settings.
- virtual const PrintSettings& settings() const = 0;
- // Cookie uniquely identifying the PrintedDocument and/or loaded settings.
- virtual int cookie() const = 0;
- // Returns true if the current thread is a thread on which a task
- // may be run, and false if no task will be run on the current
- // thread.
- bool RunsTasksInCurrentSequence() const;
- // Posts the given task to be run.
- bool PostTask(const base::Location& from_here, const base::Closure& task);
- protected:
- friend class base::RefCountedThreadSafe<PrintJobWorkerOwner>;
- virtual ~PrintJobWorkerOwner();
- // Task runner reference. Used to send notifications in the right
- // thread.
- scoped_refptr<base::SequencedTaskRunner> task_runner_;
- };
- } // namespace printing
- #endif // CHROME_BROWSER_PRINTING_PRINT_JOB_WORKER_OWNER_H__
|