blob: cf4042ff0c9040fba066d3a6baf9b0b66f045a7f [file] [log] [blame]
// Copyright 2017 The Fuchsia 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 SRC_CONNECTIVITY_NETWORK_MDNS_SERVICE_COMMON_MDNS_FIDL_UTIL_H_
#define SRC_CONNECTIVITY_NETWORK_MDNS_SERVICE_COMMON_MDNS_FIDL_UTIL_H_
#include <fuchsia/net/cpp/fidl.h>
#include <fuchsia/net/interfaces/cpp/fidl.h>
#include <fuchsia/net/mdns/cpp/fidl.h>
#include "src/connectivity/network/mdns/service/mdns.h"
#include "src/lib/inet/socket_address.h"
namespace mdns {
// mDNS utility functions relating to fidl types.
class MdnsFidlUtil {
public:
static fuchsia::net::Ipv4Address CreateIpv4Address(const inet::IpAddress& ip_address);
static fuchsia::net::Ipv6Address CreateIpv6Address(const inet::IpAddress& ip_address);
static fuchsia::net::IpAddress CreateIpAddress(const inet::IpAddress& ip_address);
static fuchsia::net::Ipv4SocketAddress CreateSocketAddressV4(
const inet::SocketAddress& socket_address);
static fuchsia::net::Ipv6SocketAddress CreateSocketAddressV6(
const inet::SocketAddress& socket_address);
static inet::IpAddress IpAddressFrom(const fuchsia::net::IpAddress& addr);
static void FillServiceInstance(fuchsia::net::mdns::ServiceInstance* service_instance,
const std::string& service, const std::string& instance,
const std::vector<inet::SocketAddress>& addresses,
const std::vector<std::vector<uint8_t>>& text,
uint16_t srv_priority, uint16_t srv_weight,
const std::string& target);
};
} // namespace mdns
#endif // SRC_CONNECTIVITY_NETWORK_MDNS_SERVICE_COMMON_MDNS_FIDL_UTIL_H_