Browse Source

[2470] added wrapper interface to create null loader callbacks

this is especially useful for tests.
JINMEI Tatuya 12 years ago
parent
commit
50ca8b1b82

+ 1 - 1
src/lib/dns/Makefile.am

@@ -124,7 +124,7 @@ libb10_dns___la_SOURCES += tsigerror.h tsigerror.cc
 libb10_dns___la_SOURCES += tsigkey.h tsigkey.cc
 libb10_dns___la_SOURCES += tsigkey.h tsigkey.cc
 libb10_dns___la_SOURCES += tsigrecord.h tsigrecord.cc
 libb10_dns___la_SOURCES += tsigrecord.h tsigrecord.cc
 libb10_dns___la_SOURCES += character_string.h character_string.cc
 libb10_dns___la_SOURCES += character_string.h character_string.cc
-libb10_dns___la_SOURCES += master_loader_callbacks.h
+libb10_dns___la_SOURCES += master_loader_callbacks.h master_loader_callbacks.cc
 libb10_dns___la_SOURCES += master_loader.h
 libb10_dns___la_SOURCES += master_loader.h
 libb10_dns___la_SOURCES += rdata/generic/detail/char_string.h
 libb10_dns___la_SOURCES += rdata/generic/detail/char_string.h
 libb10_dns___la_SOURCES += rdata/generic/detail/char_string.cc
 libb10_dns___la_SOURCES += rdata/generic/detail/char_string.cc

+ 10 - 0
src/lib/dns/master_loader_callbacks.h

@@ -122,6 +122,16 @@ public:
         warning_(source_name, source_line, reason);
         warning_(source_name, source_line, reason);
     }
     }
 
 
+    /// \brief Return a callbacks instance with null callbacks
+    ///
+    /// This is a convenience wrapper to generate a
+    /// \c MasterLoaderCallbacks object with both callbacks being nothing.
+    /// This will be useful for applications that only need to run
+    /// \c MasterLoader and get the end result.
+    ///
+    /// \throw None
+    static MasterLoaderCallbacks getNullCallbacks();
+
 private:
 private:
     IssueCallback error_, warning_;
     IssueCallback error_, warning_;
 };
 };

+ 1 - 10
src/lib/dns/tests/rdata_txt_like_unittest.cc

@@ -53,17 +53,11 @@ const uint8_t wiredata_txt_like[] = {
 
 
 const uint8_t wiredata_nulltxt[] = { 0 };
 const uint8_t wiredata_nulltxt[] = { 0 };
 
 
-// For lexer-based constructor
-void
-dummyCallback(const string&, size_t, const string&) {
-}
-
 template<class TXT_LIKE>
 template<class TXT_LIKE>
 class Rdata_TXT_LIKE_Test : public RdataTest {
 class Rdata_TXT_LIKE_Test : public RdataTest {
 protected:
 protected:
     Rdata_TXT_LIKE_Test() :
     Rdata_TXT_LIKE_Test() :
-        callback(boost::bind(&dummyCallback, _1, _2, _3)),
-        loader_cb(callback, callback),
+        loader_cb(MasterLoaderCallbacks::getNullCallbacks()),
         wiredata_longesttxt(256, 'a'),
         wiredata_longesttxt(256, 'a'),
         rdata_txt_like("Test-String"),
         rdata_txt_like("Test-String"),
         rdata_txt_like_empty("\"\""),
         rdata_txt_like_empty("\"\""),
@@ -72,9 +66,6 @@ protected:
         wiredata_longesttxt[0] = 255; // adjust length
         wiredata_longesttxt[0] = 255; // adjust length
     }
     }
 
 
-private:
-    const MasterLoaderCallbacks::IssueCallback callback;
-
 protected:
 protected:
     MasterLoaderCallbacks loader_cb;
     MasterLoaderCallbacks loader_cb;
     vector<uint8_t> wiredata_longesttxt;
     vector<uint8_t> wiredata_longesttxt;

+ 2 - 7
src/lib/dns/tests/rdata_unittest.cc

@@ -60,10 +60,6 @@ RdataTest::rdataFactoryFromFile(const RRType& rrtype, const RRClass& rrclass,
 
 
 namespace test {
 namespace test {
 
 
-void
-dummyCallback(const string&, size_t, const string&) {
-}
-
 RdataPtr
 RdataPtr
 createRdataUsingLexer(const RRType& rrtype, const RRClass& rrclass,
 createRdataUsingLexer(const RRType& rrtype, const RRClass& rrclass,
                       const std::string& str)
                       const std::string& str)
@@ -72,9 +68,8 @@ createRdataUsingLexer(const RRType& rrtype, const RRClass& rrclass,
     MasterLexer lexer;
     MasterLexer lexer;
     lexer.pushSource(ss);
     lexer.pushSource(ss);
 
 
-    const MasterLoaderCallbacks::IssueCallback callback
-        (boost::bind(&dummyCallback, _1, _2, _3));
-    MasterLoaderCallbacks callbacks(callback, callback);
+    MasterLoaderCallbacks callbacks =
+        MasterLoaderCallbacks::getNullCallbacks();
     const Name origin("example.org.");
     const Name origin("example.org.");
 
 
     return (createRdata(rrtype, rrclass, lexer, &origin,
     return (createRdata(rrtype, rrclass, lexer, &origin,

+ 1 - 7
src/lib/dns/tests/rrparamregistry_unittest.cc

@@ -157,10 +157,6 @@ TEST_F(RRParamRegistryTest, addRemoveFactory) {
                      RRType(test_type_code)));
                      RRType(test_type_code)));
 }
 }
 
 
-void
-dummyCallback(const string&, size_t, const string&) {
-}
-
 RdataPtr
 RdataPtr
 createRdataHelper(const std::string& str) {
 createRdataHelper(const std::string& str) {
     boost::scoped_ptr<AbstractRdataFactory> rdf(new TestRdataFactory);
     boost::scoped_ptr<AbstractRdataFactory> rdf(new TestRdataFactory);
@@ -169,9 +165,7 @@ createRdataHelper(const std::string& str) {
     MasterLexer lexer;
     MasterLexer lexer;
     lexer.pushSource(ss);
     lexer.pushSource(ss);
 
 
-    const MasterLoaderCallbacks::IssueCallback callback
-        (boost::bind(&dummyCallback, _1, _2, _3));
-    MasterLoaderCallbacks callbacks(callback, callback);
+    MasterLoaderCallbacks callbacks(MasterLoaderCallbacks::getNullCallbacks());
     const Name origin("example.org.");
     const Name origin("example.org.");
 
 
     return (rdf->create(lexer, &origin,
     return (rdf->create(lexer, &origin,