| // Copyright 2015 The Chromium OS 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 LORGNETTE_EPSON_PROBE_H_ |
| #define LORGNETTE_EPSON_PROBE_H_ |
| |
| #include <vector> |
| |
| #include <lorgnette/proto_bindings/lorgnette_service.pb.h> |
| |
| #include "lorgnette/manager.h" |
| |
| // Method for probing for Epson-based network scanners. The code in |
| // sane-backends for probing Epson based scanners does not work in |
| // Chrome OS since it expects a unicast reply to an outgoing broadcast |
| // probe. This protocol is simple enough to implement within lorgnette |
| // and can take advantage of the FirewallManager to temporarily open up |
| // access to receive a reply. |
| namespace lorgnette { |
| |
| class FirewallManager; |
| |
| namespace epson_probe { |
| |
| // Probe for Epson-based network scanners. Use |firewall_manager| to request |
| // firewall permissions for receiving probe replies. Return any new entries. |
| std::vector<ScannerInfo> ProbeForScanners(FirewallManager* firewall_manager); |
| |
| } // namespace epson_probe |
| |
| } // namespace lorgnette |
| |
| #endif // LORGNETTE_EPSON_PROBE_H_ |