From: Mukund Sivaraman Date: Thu, 3 Jan 2013 11:27:08 +0000 (+0530) Subject: [2432] Move common code into a helper method X-Git-Tag: bind10-1.0.0-rc-release~140 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ee424bbc727b754b8030fb2adaa69c578f096de9;p=thirdparty%2Fkea.git [2432] Move common code into a helper method --- diff --git a/src/lib/dns/rrset_collection.cc b/src/lib/dns/rrset_collection.cc index 8ee85be7f1..a16e529cec 100644 --- a/src/lib/dns/rrset_collection.cc +++ b/src/lib/dns/rrset_collection.cc @@ -55,30 +55,31 @@ RRsetCollection::addRRset(RRsetPtr rrset) { rrsets_.insert(std::pair(key, rrset)); } -RRsetCollection::RRsetCollection(const char* filename, const Name& origin, - const RRClass& rrclass) +template +void +RRsetCollection::constructHelper(T source, const isc::dns::Name& origin, + const isc::dns::RRClass& rrclass) { MasterLoaderCallbacks callbacks (boost::bind(&RRsetCollection::loaderCallback, this, _1, _2, _3), boost::bind(&RRsetCollection::loaderCallback, this, _1, _2, _3)); - MasterLoader loader(filename, origin, rrclass, callbacks, + MasterLoader loader(source, origin, rrclass, callbacks, boost::bind(&RRsetCollection::addRRset, this, _1, _2, _3, _4, _5), MasterLoader::DEFAULT); loader.load(); } +RRsetCollection::RRsetCollection(const char* filename, const Name& origin, + const RRClass& rrclass) +{ + constructHelper(filename, origin, rrclass); +} + RRsetCollection::RRsetCollection(std::istream& input_stream, const Name& origin, const RRClass& rrclass) { - MasterLoaderCallbacks callbacks - (boost::bind(&RRsetCollection::loaderCallback, this, _1, _2, _3), - boost::bind(&RRsetCollection::loaderCallback, this, _1, _2, _3)); - MasterLoader loader(input_stream, origin, rrclass, callbacks, - boost::bind(&RRsetCollection::addRRset, - this, _1, _2, _3, _4, _5), - MasterLoader::DEFAULT); - loader.load(); + constructHelper(input_stream, origin, rrclass); } const AbstractRRset* diff --git a/src/lib/dns/rrset_collection.h b/src/lib/dns/rrset_collection.h index b44faabc92..1456f9f0d6 100644 --- a/src/lib/dns/rrset_collection.h +++ b/src/lib/dns/rrset_collection.h @@ -118,6 +118,9 @@ public: const isc::dns::RRType& rrtype) const; 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);