You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.6 KiB
54 lines
1.6 KiB
// Copyright 2018 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 OSP_PUBLIC_SERVICE_INFO_H_
|
|
#define OSP_PUBLIC_SERVICE_INFO_H_
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
#include "platform/api/network_interface.h"
|
|
#include "platform/base/ip_address.h"
|
|
|
|
namespace openscreen {
|
|
namespace osp {
|
|
|
|
// This contains canonical information about a specific Open Screen service
|
|
// found on the network via our discovery mechanism (mDNS).
|
|
struct ServiceInfo {
|
|
ServiceInfo() = default;
|
|
ServiceInfo(ServiceInfo&&) noexcept = default;
|
|
ServiceInfo(const ServiceInfo&) = default;
|
|
|
|
ServiceInfo& operator=(ServiceInfo&&) = default;
|
|
ServiceInfo& operator=(const ServiceInfo&) = default;
|
|
|
|
bool operator==(const ServiceInfo& other) const;
|
|
bool operator!=(const ServiceInfo& other) const;
|
|
|
|
bool Update(std::string friendly_name,
|
|
NetworkInterfaceIndex network_interface_index,
|
|
const IPEndpoint& v4_endpoint,
|
|
const IPEndpoint& v6_endpoint);
|
|
|
|
// Identifier uniquely identifying the Open Screen service.
|
|
std::string service_id;
|
|
|
|
// User visible name of the Open Screen service in UTF-8.
|
|
std::string friendly_name;
|
|
|
|
// The index of the network interface that the screen was discovered on.
|
|
NetworkInterfaceIndex network_interface_index = kInvalidNetworkInterfaceIndex;
|
|
|
|
// The network endpoints to create a new connection to the Open Screen
|
|
// service.
|
|
IPEndpoint v4_endpoint;
|
|
IPEndpoint v6_endpoint;
|
|
};
|
|
|
|
} // namespace osp
|
|
} // namespace openscreen
|
|
|
|
#endif // OSP_PUBLIC_SERVICE_INFO_H_
|