Browse Source

[2107] clearly separated mutable and immutable versions of getNext().

and tested for both versions.
JINMEI Tatuya 12 years ago
parent
commit
6e2de8ba7a

+ 5 - 1
src/lib/datasrc/memory/rdataset.h

@@ -237,7 +237,11 @@ public:
     /// get the same result by directly calling get() on \c next, it would
     /// help encourage the use of more efficient usage if we provide an
     /// explicit accessor.
-    RdataSet* getNext() const { return (next.get()); }
+    //const RdataSet* getNext() const { return (next.get()); }
+    const RdataSet* getNext() const { return (next.get()); }
+
+    /// \brief Return the bare pointer to the next node, mutable version.
+    RdataSet* getNext() { return (next.get()); }
 
     /// \brief Return the number of RDATAs stored in the \c RdataSet.
     size_t getRdataCount() const { return (rdata_count_); }

+ 5 - 2
src/lib/datasrc/memory/tests/rdataset_unittest.cc

@@ -121,13 +121,16 @@ TEST_F(RdataSetTest, getNext) {
                                           ConstRRsetPtr());
 
     // By default, the next pointer should be NULL (already tested in other
-    // test cases), which should be the case with getNext()
+    // test cases), which should be the case with getNext().  We test both
+    // mutable and immutable versions of getNext().
     EXPECT_EQ(static_cast<RdataSet*>(NULL), rdataset->getNext());
+    EXPECT_EQ(static_cast<const RdataSet*>(NULL),
+              static_cast<const RdataSet*>(rdataset)->getNext());
 
     // making a link (it would form an infinite loop, but it doesn't matter
     // in this test), and check the pointer returned by getNext().
     rdataset->next = rdataset;
-    EXPECT_EQ(rdataset, rdataset->getNext());
+    EXPECT_EQ(rdataset, static_cast<const RdataSet*>(rdataset)->getNext());
 
     RdataSet::destroy(mem_sgmt_, RRClass::IN(), rdataset);
 }