| Index: chrome/browser/chromeos/printing/printer_discoverer.h
|
| diff --git a/chrome/browser/chromeos/printing/printer_discoverer.h b/chrome/browser/chromeos/printing/printer_discoverer.h
|
| index b0a863900872896998b4bbf422fb102b250a7fc3..20fd8bc9b5bf9096e3489c249a4e506dad41f9df 100644
|
| --- a/chrome/browser/chromeos/printing/printer_discoverer.h
|
| +++ b/chrome/browser/chromeos/printing/printer_discoverer.h
|
| @@ -10,50 +10,45 @@
|
|
|
| #include "chromeos/printing/printer_configuration.h"
|
|
|
| +class Profile;
|
| +
|
| namespace chromeos {
|
|
|
| // Interface for printer discovery. Constructs Printer objects from USB and
|
| -// zeroconf (DNS-SD) printers.
|
| +// zeroconf (DNS-SD) printers. All functions in this class must be called
|
| +// from a sequenced context.
|
| class CHROMEOS_EXPORT PrinterDiscoverer {
|
| public:
|
| // Interface for objects interested in detected printers.
|
| class Observer {
|
| public:
|
| - // Called after discovery has started.
|
| - virtual void OnDiscoveryStarted() {}
|
| -
|
| - // Called when discovery is stopping. OnPrintersFound will not be
|
| - // called after this occurs.
|
| - virtual void OnDiscoveryStopping() {}
|
| -
|
| - // Called after all printers have been discovered and the observers
|
| - // notified.
|
| - virtual void OnDiscoveryDone() {}
|
| -
|
| - // Called with a collection of printers as they are discovered. Printer
|
| - // objects must be copied if they are retained outside of the scope of this
|
| - // function.
|
| - virtual void OnPrintersFound(const std::vector<Printer>& printers) {}
|
| + virtual ~Observer() = default;
|
| +
|
| + // Called when we are done with the initial scan for printers. We may
|
| + // still call OnPrintersFound if the set of available printers
|
| + // changes, but the user can conclude that if a printer is currently
|
| + // available and not in the list, we're not still looking for it.
|
| + virtual void OnDiscoveryInitialScanDone() = 0;
|
| +
|
| + // Called with a collection of printers as they are discovered. On each
|
| + // call |printers| is the full set of known printers; it is not
|
| + // incremental; printers may be added or removed.
|
| + //
|
| + // Observers will get an OnPrintersFound callback after registration
|
| + // with the existing list of printers (which may be empty) and will get
|
| + // additional calls whenever the set of printers changes.
|
| + virtual void OnPrintersFound(const std::vector<Printer>& printers) = 0;
|
| };
|
|
|
| // Static factory
|
| - static std::unique_ptr<PrinterDiscoverer> Create();
|
| -
|
| - virtual ~PrinterDiscoverer() {}
|
| -
|
| - // Begin scanning for printers. Found printers will be reported to the
|
| - // attached observer.
|
| - virtual bool StartDiscovery() = 0;
|
| + static std::unique_ptr<PrinterDiscoverer> CreateForProfile(Profile* profile);
|
|
|
| - // Stop scanning for printers. Returns false if scanning could not be stopped
|
| - // and new results will continue to be be sent to observers. Returns true if
|
| - // scanning was stopped successfully. No calls to the attached observer will
|
| - // be made after this returns if it returned true.
|
| - virtual bool StopDiscovery() = 0;
|
| + virtual ~PrinterDiscoverer() = default;
|
|
|
| // Add an observer that will be notified of discovered printers. Ownership of
|
| // |observer| is not taken by the discoverer. It is an error to add an
|
| - // oberserver more than once.
|
| + // observer more than once. Calls to |observer| methods will take place on
|
| + // the thread PrinterDiscoverer was instantiated on.
|
| virtual void AddObserver(PrinterDiscoverer::Observer* observer) = 0;
|
|
|
| // Remove an observer of printer discovery.
|
|
|