Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Unified Diff: chrome/browser/chromeos/printing/printer_discoverer.h

Issue 2790603003: Make CUPS USB printing play better with the settings page. This change does several things: (Closed)
Patch Set: stop latching PrintersManager, add comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
« no previous file with comments | « chrome/browser/chromeos/printing/fake_printer_discoverer.cc ('k') | chrome/browser/chromeos/printing/printer_discoverer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698