chromium/chrome/browser/ash/secure_channel/nearby_endpoint_finder.cc

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ash/secure_channel/nearby_endpoint_finder.h"

#include "chromeos/ash/services/nearby/public/mojom/nearby_connections_types.mojom.h"

namespace ash {
namespace secure_channel {

NearbyEndpointFinder::NearbyEndpointFinder() = default;

NearbyEndpointFinder::~NearbyEndpointFinder() = default;

void NearbyEndpointFinder::FindEndpoint(
    const std::vector<uint8_t>& remote_device_bluetooth_address,
    const std::vector<uint8_t>& eid,
    EndpointCallback success_callback,
    base::OnceCallback<void(::nearby::connections::mojom::Status)>
        failure_callback) {
  // Only intended to be called once.
  DCHECK(remote_device_bluetooth_address_.empty());

  remote_device_bluetooth_address_ = remote_device_bluetooth_address;
  eid_ = eid;
  success_callback_ = std::move(success_callback);
  failure_callback_ = std::move(failure_callback);

  PerformFindEndpoint();
}

void NearbyEndpointFinder::NotifyEndpointFound(
    const std::string& endpoint_id,
    ::nearby::connections::mojom::DiscoveredEndpointInfoPtr info) {
  std::move(success_callback_).Run(endpoint_id, std::move(info));
}

void NearbyEndpointFinder::NotifyEndpointDiscoveryFailure(
    ::nearby::connections::mojom::Status status) {
  std::move(failure_callback_).Run(status);
}

}  // namespace secure_channel
}  // namespace ash