]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2432] Move common code into a helper method
authorMukund Sivaraman <muks@isc.org>
Thu, 3 Jan 2013 11:27:08 +0000 (16:57 +0530)
committerMukund Sivaraman <muks@isc.org>
Thu, 3 Jan 2013 11:27:08 +0000 (16:57 +0530)
src/lib/dns/rrset_collection.cc
src/lib/dns/rrset_collection.h

index 8ee85be7f1b8df236ab7b5166a528cde1125a1e5..a16e529cec932c65046f7ae52a649f8f0ca6d772 100644 (file)
@@ -55,30 +55,31 @@ RRsetCollection::addRRset(RRsetPtr rrset) {
     rrsets_.insert(std::pair<CollectionKey, RRsetPtr>(key, rrset));
 }
 
-RRsetCollection::RRsetCollection(const char* filename, const Name& origin,
-                                 const RRClass& rrclass)
+template<typename T>
+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<const char*>(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<std::istream&>(input_stream, origin, rrclass);
 }
 
 const AbstractRRset*
index b44faabc9276102ac0746aea53dc50927b12941b..1456f9f0d6538e7753ba9bd2fe868ff4bf9aa378 100644 (file)
@@ -118,6 +118,9 @@ public:
                                  const isc::dns::RRType& rrtype) const;
 
 private:
+    template<typename T>
+    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);