From: Mukund Sivaraman Date: Thu, 3 Jan 2013 11:48:45 +0000 (+0530) Subject: [2432] Use RRCollator during RRsetCollection construction (zone-loading) X-Git-Tag: bind10-1.0.0-rc-release~139 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bbb8a8f0ed42862b7e5b54e7611cb0d0e364203b;p=thirdparty%2Fkea.git [2432] Use RRCollator during RRsetCollection construction (zone-loading) --- diff --git a/src/lib/dns/rrset_collection.cc b/src/lib/dns/rrset_collection.cc index a16e529cec..0c804a746b 100644 --- a/src/lib/dns/rrset_collection.cc +++ b/src/lib/dns/rrset_collection.cc @@ -15,6 +15,7 @@ #include #include #include +#include #include @@ -31,16 +32,6 @@ RRsetCollection::loaderCallback(const std::string&, size_t, const std::string&) // We just ignore callbacks for errors and warnings. } -void -RRsetCollection::addRRset(const Name& name, const RRClass& rrclass, - const RRType& rrtype, const RRTTL& rrttl, - const rdata::RdataPtr& data) -{ - RRsetPtr rrset(new BasicRRset(name, rrclass, rrtype, rrttl)); - rrset->addRdata(data); - addRRset(rrset); -} - void RRsetCollection::addRRset(RRsetPtr rrset) { const CollectionKey key(rrset->getClass(), rrset->getType(), @@ -60,14 +51,15 @@ void RRsetCollection::constructHelper(T source, const isc::dns::Name& origin, const isc::dns::RRClass& rrclass) { + RRCollator collator(boost::bind(&RRsetCollection::addRRset, this, _1)); MasterLoaderCallbacks callbacks (boost::bind(&RRsetCollection::loaderCallback, this, _1, _2, _3), boost::bind(&RRsetCollection::loaderCallback, this, _1, _2, _3)); MasterLoader loader(source, origin, rrclass, callbacks, - boost::bind(&RRsetCollection::addRRset, - this, _1, _2, _3, _4, _5), + collator.getCallback(), MasterLoader::DEFAULT); loader.load(); + collator.flush(); } RRsetCollection::RRsetCollection(const char* filename, const Name& origin, diff --git a/src/lib/dns/rrset_collection.h b/src/lib/dns/rrset_collection.h index 1456f9f0d6..bc1d185495 100644 --- a/src/lib/dns/rrset_collection.h +++ b/src/lib/dns/rrset_collection.h @@ -121,9 +121,6 @@ private: template void constructHelper(T source, const isc::dns::Name& origin, const isc::dns::RRClass& rrclass); - void addRRset(const isc::dns::Name& name, const isc::dns::RRClass& rrclass, - const isc::dns::RRType& rrtype, const isc::dns::RRTTL& rrttl, - const isc::dns::rdata::RdataPtr& data); void loaderCallback(const std::string&, size_t, const std::string&); typedef boost::tuple