blob: 863c31ac111d571658df771f8cd8ffb3957ebc88 [file] [log] [blame]
// Copyright 2021 The Chromium 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 CHROMEOS_SERVICES_LIBASSISTANT_NETWORK_PROVIDER_IMPL_H_
#define CHROMEOS_SERVICES_LIBASSISTANT_NETWORK_PROVIDER_IMPL_H_
#include <vector>
#include "base/macros.h"
#include "chromeos/services/libassistant/public/mojom/platform_delegate.mojom-forward.h"
#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
#include "libassistant/shared/public/platform_net.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace chromeos {
namespace libassistant {
class COMPONENT_EXPORT(ASSISTANT_SERVICE) NetworkProviderImpl
: public assistant_client::NetworkProvider,
public network_config::mojom::CrosNetworkConfigObserver {
public:
NetworkProviderImpl();
~NetworkProviderImpl() override;
void Initialize(mojom::PlatformDelegate* platform_delegate);
// assistant_client::NetworkProvider:
ConnectionStatus GetConnectionStatus() override;
assistant_client::MdnsResponder* GetMdnsResponder() override;
// network_config::mojom::CrosNetworkConfigObserver:
void OnActiveNetworksChanged(
std::vector<network_config::mojom::NetworkStatePropertiesPtr> networks)
override;
void OnNetworkStateChanged(
chromeos::network_config::mojom::NetworkStatePropertiesPtr network)
override {}
void OnNetworkStateListChanged() override {}
void OnDeviceStateListChanged() override {}
void OnVpnProvidersChanged() override {}
void OnNetworkCertificatesChanged() override {}
private:
ConnectionStatus connection_status_;
mojo::Receiver<network_config::mojom::CrosNetworkConfigObserver> receiver_{
this};
mojo::Remote<network_config::mojom::CrosNetworkConfig>
cros_network_config_remote_;
DISALLOW_COPY_AND_ASSIGN(NetworkProviderImpl);
};
} // namespace libassistant
} // namespace chromeos
#endif // CHROMEOS_SERVICES_LIBASSISTANT_NETWORK_PROVIDER_IMPL_H_