chromium/third_party/openscreen/src/discovery/dnssd/public/dns_sd_instance.h

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

#ifndef DISCOVERY_DNSSD_PUBLIC_DNS_SD_INSTANCE_H_
#define DISCOVERY_DNSSD_PUBLIC_DNS_SD_INSTANCE_H_

#include <string>
#include <utility>
#include <vector>

#include "discovery/dnssd/public/dns_sd_txt_record.h"
#include "platform/base/ip_address.h"
#include "util/std_util.h"

namespace openscreen::discovery {

bool IsInstanceValid(const std::string& instance);
bool IsServiceValid(const std::string& service);
bool IsDomainValid(const std::string& domain);

// Represents the data stored in DNS records of types SRV, TXT, A, and AAAA
class DnsSdInstance {};

bool IsSubtypeValid(const DnsSdInstance::Subtype& subtype);

bool IsValid(const DnsSdInstance::Subtype& subtype);

bool operator<(const DnsSdInstance& lhs, const DnsSdInstance& rhs);

inline bool operator>(const DnsSdInstance& lhs, const DnsSdInstance& rhs) {}

inline bool operator<=(const DnsSdInstance& lhs, const DnsSdInstance& rhs) {}

inline bool operator>=(const DnsSdInstance& lhs, const DnsSdInstance& rhs) {}

inline bool operator==(const DnsSdInstance& lhs, const DnsSdInstance& rhs) {}

inline bool operator!=(const DnsSdInstance& lhs, const DnsSdInstance& rhs) {}

}  // namespace openscreen::discovery

#endif  // DISCOVERY_DNSSD_PUBLIC_DNS_SD_INSTANCE_H_