From: JINMEI Tatuya Date: Tue, 28 Aug 2012 00:18:50 +0000 (-0700) Subject: [2098] move the MessageRenderer: writeName to the base call as virtual method. X-Git-Tag: trac2351_base~91^2~30 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b350749a8455f99095609ba20f9fefdb7fe1aeee;p=thirdparty%2Fkea.git [2098] move the MessageRenderer: writeName to the base call as virtual method. The TreeNodeRRset version will need to use that. --- diff --git a/src/lib/datasrc/memory/rdata_serialization.cc b/src/lib/datasrc/memory/rdata_serialization.cc index 841bc13daf..6c3e06c35b 100644 --- a/src/lib/datasrc/memory/rdata_serialization.cc +++ b/src/lib/datasrc/memory/rdata_serialization.cc @@ -248,6 +248,9 @@ public: virtual void setTruncated() {} virtual void setLengthLimit(size_t) {} virtual void setCompressMode(CompressMode) {} + virtual void writeName(const LabelSequence&, bool) { + // We don't need this version of writeName + } // Called for each domain name in the RDATA, from the RDATA's toWire() // implementation. diff --git a/src/lib/dns/benchmarks/message_renderer_bench.cc b/src/lib/dns/benchmarks/message_renderer_bench.cc index cc2fc88531..752b1f664c 100644 --- a/src/lib/dns/benchmarks/message_renderer_bench.cc +++ b/src/lib/dns/benchmarks/message_renderer_bench.cc @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -115,6 +116,7 @@ public: virtual void writeName(const Name& name, const bool = false) { name.toWire(getBuffer()); } + virtual void writeName(const LabelSequence&, const bool) {} // unused }; void diff --git a/src/lib/dns/benchmarks/oldmessagerenderer.cc b/src/lib/dns/benchmarks/oldmessagerenderer.cc index cd5c4e2cf5..a6c7990115 100644 --- a/src/lib/dns/benchmarks/oldmessagerenderer.cc +++ b/src/lib/dns/benchmarks/oldmessagerenderer.cc @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -274,5 +275,10 @@ OldMessageRenderer::writeName(const Name& name, const bool compress) { } } +void +OldMessageRenderer::writeName(const LabelSequence&, const bool) { + // we don't use this mode for the benchmark +} + } } diff --git a/src/lib/dns/messagerenderer.h b/src/lib/dns/messagerenderer.h index d8f4634b6f..fc05641361 100644 --- a/src/lib/dns/messagerenderer.h +++ b/src/lib/dns/messagerenderer.h @@ -334,6 +334,7 @@ public: /// \param name A \c Name object to be written. /// \param compress A boolean indicating whether to enable name compression. virtual void writeName(const Name& name, bool compress = true) = 0; + virtual void writeName(const LabelSequence& ls, bool compress = true) = 0; //@} }; @@ -391,7 +392,7 @@ public: /// /// \param ls A \c LabelSequence object to be written. /// \param compress A boolean indicating whether to enable name compression. - void writeName(const LabelSequence& ls, bool compress = true); + virtual void writeName(const LabelSequence& ls, bool compress = true); private: struct MessageRendererImpl; diff --git a/src/lib/dns/rdatafields.cc b/src/lib/dns/rdatafields.cc index 94c9dbf41d..5737ef7bbc 100644 --- a/src/lib/dns/rdatafields.cc +++ b/src/lib/dns/rdatafields.cc @@ -81,6 +81,7 @@ public: virtual void setTruncated() { truncated_ = true; } virtual void setLengthLimit(size_t len) { length_limit_ = len; } virtual void setCompressMode(CompressMode mode) { mode_ = mode; } + virtual void writeName(const LabelSequence&, bool) {} virtual void writeName(const Name& name, bool compress) { extendData(); const RdataFields::Type field_type =