Browse Source

[2098] move the MessageRenderer: writeName to the base call as virtual method.

The TreeNodeRRset version will need to use that.
JINMEI Tatuya 12 years ago
parent
commit
b350749a84

+ 3 - 0
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.

+ 2 - 0
src/lib/dns/benchmarks/message_renderer_bench.cc

@@ -15,6 +15,7 @@
 #include <bench/benchmark.h>
 
 #include <dns/name.h>
+#include <dns/labelsequence.h>
 #include <dns/messagerenderer.h>
 #include <oldmessagerenderer.h>
 
@@ -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

+ 6 - 0
src/lib/dns/benchmarks/oldmessagerenderer.cc

@@ -15,6 +15,7 @@
 #include <exceptions/exceptions.h>
 #include <util/buffer.h>
 #include <dns/name.h>
+#include <dns/labelsequence.h>
 #include <oldmessagerenderer.h>
 
 #include <cctype>
@@ -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
+}
+
 }
 }

+ 2 - 1
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;

+ 1 - 0
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 =