blob: 2ed14bbffb8ae1be3ced35aef6d83f2c527f23f0 [file] [log] [blame]
// 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_