]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2435] Make ZoneUpdater return a isc::dns::RRsetCollectionBase reference
authorMukund Sivaraman <muks@isc.org>
Mon, 28 Jan 2013 03:51:41 +0000 (09:21 +0530)
committerMukund Sivaraman <muks@isc.org>
Mon, 28 Jan 2013 03:51:41 +0000 (09:21 +0530)
src/lib/datasrc/database.cc
src/lib/datasrc/rrset_collection_base.h
src/lib/datasrc/tests/database_unittest.cc
src/lib/datasrc/tests/master_loader_callbacks_test.cc
src/lib/datasrc/tests/zone_loader_unittest.cc
src/lib/datasrc/zone.h
src/lib/datasrc/zone_loader.cc

index 195793a713b813defde6189278232437f0c37925..b34b427798e062c43c168a66a2720b4485dbadbc 100644 (file)
@@ -1439,7 +1439,7 @@ public:
 
     virtual ZoneFinder& getFinder() { return (*finder_); }
 
-    virtual isc::datasrc::RRsetCollectionBase& getRRsetCollection() {
+    virtual isc::dns::RRsetCollectionBase& getRRsetCollection() {
         if (!rrset_collection_) {
             // This is only assigned the first time and remains for the
             // lifetime of the DatabaseUpdater.
index 39baa8e0fa108c4cafc699f7a08828eb2f1502f0..66b5825574d40476aee8bb66026b09b179edfb2e 100644 (file)
@@ -22,9 +22,6 @@
 namespace isc {
 namespace datasrc {
 
-/// \brief A forward declaration
-class ZoneUpdater;
-
 /// \brief datasrc derivation of \c isc::dns::RRsetCollectionBase.
 ///
 /// This is a default datasrc implementation of
index a0fc6bf31350335416a08a6d0eace7a4a6482039..ccc4104423e4f73525031630da1ae1b01f9afa3b 100644 (file)
@@ -4244,7 +4244,7 @@ public:
     {}
 
     ZoneUpdaterPtr updater;
-    isc::datasrc::RRsetCollectionBase& collection;
+    isc::dns::RRsetCollectionBase& collection;
 };
 
 TYPED_TEST(RRsetCollectionTest, find) {
@@ -4429,7 +4429,7 @@ TYPED_TEST(RRsetCollectionAndUpdaterTest, updateThrows) {
 // Test that using an RRsetCollection after calling commit() on the
 // ZoneUpdater throws, as the RRsetCollection is disabled.
 TYPED_TEST(RRsetCollectionAndUpdaterTest, useAfterCommitThrows) {
-     isc::datasrc::RRsetCollectionBase& collection =
+     isc::dns::RRsetCollectionBase& collection =
          this->updater_->getRRsetCollection();
 
      // find() must not throw here.
index dc444615891204eadf240c5f180e6879b4a7a320..fb4487ad486b53c64118af3b100c1798eefde687 100644 (file)
@@ -65,7 +65,7 @@ public:
     virtual ZoneFinder& getFinder() {
         isc_throw(isc::NotImplemented, "Not to be called in this test");
     }
-    virtual isc::datasrc::RRsetCollectionBase& getRRsetCollection() {
+    virtual isc::dns::RRsetCollectionBase& getRRsetCollection() {
         isc_throw(isc::NotImplemented, "Not to be called in this test");
     }
     virtual void deleteRRset(const isc::dns::AbstractRRset&) {
index f0ad814906f72fbd56e5f76d6f462ca2ed0c0b18..edc01a84cf42b786c28cba50fb6472f9c2b6fcb1 100644 (file)
@@ -14,6 +14,7 @@
 
 #include <datasrc/zone_loader.h>
 #include <datasrc/data_source.h>
+#include <datasrc/rrset_collection_base.h>
 
 #include <datasrc/memory/zone_table_segment.h>
 #include <datasrc/memory/memory_client.h>
@@ -77,24 +78,16 @@ public:
     RRClass rrclass_;
 };
 
-// Test implementation of RRsetCollectionBase.
+// Test implementation of RRsetCollectionBase. This is currently just a
+// wrapper around \c isc::datasrc::RRsetCollectionBase;
+// \c isc::datasrc::RRsetCollectionBase may become an abstract class in
+// the future.
 class TestRRsetCollection : public isc::datasrc::RRsetCollectionBase {
 public:
     TestRRsetCollection(ZoneUpdater& updater,
                         const isc::dns::RRClass& rrclass) :
         isc::datasrc::RRsetCollectionBase(updater, rrclass)
     {}
-
-    virtual ~TestRRsetCollection() {}
-
-protected:
-    virtual RRsetCollectionBase::IterPtr getBeginning() {
-        isc_throw(isc::NotImplemented, "This method is not implemented.");
-    }
-
-    virtual RRsetCollectionBase::IterPtr getEnd() {
-        isc_throw(isc::NotImplemented, "This method is not implemented.");
-    }
 };
 
 // The updater isn't really correct according to the API. For example,
@@ -111,7 +104,7 @@ public:
     virtual ZoneFinder& getFinder() {
         return (finder_);
     }
-    virtual isc::datasrc::RRsetCollectionBase& getRRsetCollection() {
+    virtual isc::dns::RRsetCollectionBase& getRRsetCollection() {
         if (!rrset_collection_) {
             rrset_collection_.reset(new TestRRsetCollection(*this,
                                                             client_->rrclass_));
index 86f6e3b0f6643c25891e612745253854d2e8afea..c4b7a2994034ff53cfac4241ea3efb9102c13680 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <datasrc/exceptions.h>
 #include <datasrc/result.h>
-#include <datasrc/rrset_collection_base.h>
+#include <dns/rrset_collection_base.h>
 
 #include <utility>
 #include <vector>
@@ -741,9 +741,6 @@ typedef boost::shared_ptr<ZoneFinder::Context> ZoneFinderContextPtr;
 /// \c ZoneFinder::Context object.
 typedef boost::shared_ptr<ZoneFinder::Context> ConstZoneFinderContextPtr;
 
-/// \brief A forward declaration
-class RRsetCollectionBase;
-
 /// The base class to make updates to a single zone.
 ///
 /// On construction, each derived class object will start a "transaction"
@@ -863,7 +860,7 @@ public:
     /// If an \c RRsetCollection is disabled, using methods such as \c find()
     /// and using its iterator would cause an exception to be thrown. See
     /// \c isc::datasrc::RRsetCollectionBase for details.
-    virtual isc::datasrc::RRsetCollectionBase& getRRsetCollection() = 0;
+    virtual isc::dns::RRsetCollectionBase& getRRsetCollection() = 0;
 
     /// Add an RRset to a zone via the updater
     ///
index 098b47a0054a6d5877e9b6a3c0260143dbdb5b72..e8c773fc25e4c31dcbe72a6ef9429f4e6d4ed932 100644 (file)
 #include <datasrc/iterator.h>
 #include <datasrc/zone.h>
 #include <datasrc/logger.h>
-#include <datasrc/rrset_collection_base.h>
 
 #include <dns/rrset.h>
 #include <dns/zone_checker.h>
 #include <dns/name.h>
 #include <dns/rrclass.h>
+#include <dns/rrset_collection_base.h>
 
 #include <boost/bind.hpp>
 
@@ -33,6 +33,7 @@
 
 using isc::dns::Name;
 using isc::dns::ConstRRsetPtr;
+using isc::dns::RRsetCollectionBase;
 using isc::dns::MasterLoader;
 
 namespace isc {