Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Unified Diff: net/dns/record_rdata.h

Issue 14697022: Cache for mDNS records (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@record_parsed_klassbit
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/dns/record_rdata.h
diff --git a/net/dns/record_rdata.h b/net/dns/record_rdata.h
index 76e9b37fe331521b172cc40b0278b4dd3127b4c1..dff311d8e8eed2e3aad323cc1607d08d3cab9a5f 100644
--- a/net/dns/record_rdata.h
+++ b/net/dns/record_rdata.h
@@ -27,6 +27,10 @@ class NET_EXPORT_PRIVATE RecordRdata {
public:
virtual ~RecordRdata() {}
+ virtual bool IsEqual(const RecordRdata* other) const = 0;
+ virtual uint16 Type() const = 0;
+ virtual scoped_ptr<const RecordRdata> Copy() const = 0;
+
protected:
RecordRdata();
@@ -46,6 +50,10 @@ class NET_EXPORT_PRIVATE SrvRecordRdata : public RecordRdata {
static scoped_ptr<SrvRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
+ virtual uint16 Type() const OVERRIDE;
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE;
+
uint16 priority() const { return priority_; }
uint16 weight() const { return weight_; }
uint16 port() const { return port_; }
@@ -73,6 +81,9 @@ class NET_EXPORT_PRIVATE ARecordRdata : public RecordRdata {
virtual ~ARecordRdata();
static scoped_ptr<ARecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
+ virtual uint16 Type() const OVERRIDE;
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE;
const IPAddressNumber& address() const { return address_; }
@@ -84,6 +95,29 @@ class NET_EXPORT_PRIVATE ARecordRdata : public RecordRdata {
DISALLOW_COPY_AND_ASSIGN(ARecordRdata);
};
+// AAAA Record format (http://www.ietf.org/rfc/rfc1035.txt):
+// 16 bytes for IP address.
+class NET_EXPORT_PRIVATE AAAARecordRdata : public RecordRdata {
+ public:
+ static const uint16 kType = dns_protocol::kTypeAAAA;
+
+ virtual ~AAAARecordRdata();
+ static scoped_ptr<AAAARecordRdata> Create(const base::StringPiece& data,
+ const DnsRecordParser& parser);
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
+ virtual uint16 Type() const OVERRIDE;
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE;
+
+ const IPAddressNumber& address() const { return address_; }
+
+ private:
+ AAAARecordRdata();
+
+ IPAddressNumber address_;
+
+ DISALLOW_COPY_AND_ASSIGN(AAAARecordRdata);
+};
+
// CNAME record format (http://www.ietf.org/rfc/rfc1035.txt):
// cname: On the wire representation of domain name.
class NET_EXPORT_PRIVATE CnameRecordRdata : public RecordRdata {
@@ -93,6 +127,9 @@ class NET_EXPORT_PRIVATE CnameRecordRdata : public RecordRdata {
virtual ~CnameRecordRdata();
static scoped_ptr<CnameRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
+ virtual uint16 Type() const OVERRIDE;
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE;
std::string cname() const { return cname_; }
@@ -113,6 +150,9 @@ class NET_EXPORT_PRIVATE PtrRecordRdata : public RecordRdata {
virtual ~PtrRecordRdata();
static scoped_ptr<PtrRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
+ virtual uint16 Type() const OVERRIDE;
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE;
std::string ptrdomain() const { return ptrdomain_; }
@@ -134,6 +174,9 @@ class NET_EXPORT_PRIVATE TxtRecordRdata : public RecordRdata {
virtual ~TxtRecordRdata();
static scoped_ptr<TxtRecordRdata> Create(const base::StringPiece& data,
const DnsRecordParser& parser);
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE;
+ virtual uint16 Type() const OVERRIDE;
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE;
const std::vector<std::string>& texts() const { return texts_; }

Powered by Google App Engine
This is Rietveld 408576698