From: Mukund Sivaraman Date: Mon, 28 Jan 2013 03:51:41 +0000 (+0530) Subject: [2435] Make ZoneUpdater return a isc::dns::RRsetCollectionBase reference X-Git-Tag: bind10-1.0.0-rc-release~81 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=df5cb12f60fc4f22b24218a54bf428f403cabe22;p=thirdparty%2Fkea.git [2435] Make ZoneUpdater return a isc::dns::RRsetCollectionBase reference --- diff --git a/src/lib/datasrc/database.cc b/src/lib/datasrc/database.cc index 195793a713..b34b427798 100644 --- a/src/lib/datasrc/database.cc +++ b/src/lib/datasrc/database.cc @@ -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. diff --git a/src/lib/datasrc/rrset_collection_base.h b/src/lib/datasrc/rrset_collection_base.h index 39baa8e0fa..66b5825574 100644 --- a/src/lib/datasrc/rrset_collection_base.h +++ b/src/lib/datasrc/rrset_collection_base.h @@ -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 diff --git a/src/lib/datasrc/tests/database_unittest.cc b/src/lib/datasrc/tests/database_unittest.cc index a0fc6bf313..ccc4104423 100644 --- a/src/lib/datasrc/tests/database_unittest.cc +++ b/src/lib/datasrc/tests/database_unittest.cc @@ -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. diff --git a/src/lib/datasrc/tests/master_loader_callbacks_test.cc b/src/lib/datasrc/tests/master_loader_callbacks_test.cc index dc44461589..fb4487ad48 100644 --- a/src/lib/datasrc/tests/master_loader_callbacks_test.cc +++ b/src/lib/datasrc/tests/master_loader_callbacks_test.cc @@ -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&) { diff --git a/src/lib/datasrc/tests/zone_loader_unittest.cc b/src/lib/datasrc/tests/zone_loader_unittest.cc index f0ad814906..edc01a84cf 100644 --- a/src/lib/datasrc/tests/zone_loader_unittest.cc +++ b/src/lib/datasrc/tests/zone_loader_unittest.cc @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -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_)); diff --git a/src/lib/datasrc/zone.h b/src/lib/datasrc/zone.h index 86f6e3b0f6..c4b7a29940 100644 --- a/src/lib/datasrc/zone.h +++ b/src/lib/datasrc/zone.h @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include @@ -741,9 +741,6 @@ typedef boost::shared_ptr ZoneFinderContextPtr; /// \c ZoneFinder::Context object. typedef boost::shared_ptr 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 /// diff --git a/src/lib/datasrc/zone_loader.cc b/src/lib/datasrc/zone_loader.cc index 098b47a005..e8c773fc25 100644 --- a/src/lib/datasrc/zone_loader.cc +++ b/src/lib/datasrc/zone_loader.cc @@ -20,12 +20,12 @@ #include #include #include -#include #include #include #include #include +#include #include @@ -33,6 +33,7 @@ using isc::dns::Name; using isc::dns::ConstRRsetPtr; +using isc::dns::RRsetCollectionBase; using isc::dns::MasterLoader; namespace isc {