[svn] commit: r3475 - in /branches/trac408/src/lib/nsas: nameserver_address_store.cc nameserver_address_store.h resolver_interface.h tests/nameserver_address_store_unittest.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Sat Nov 6 18:34:21 UTC 2010


Author: vorner
Date: Sat Nov  6 18:34:21 2010
New Revision: 3475

Log:
Interface of resolver

Well, temporary one, for now

Added:
    branches/trac408/src/lib/nsas/resolver_interface.h
Modified:
    branches/trac408/src/lib/nsas/nameserver_address_store.cc
    branches/trac408/src/lib/nsas/nameserver_address_store.h
    branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc

Modified: branches/trac408/src/lib/nsas/nameserver_address_store.cc
==============================================================================
--- branches/trac408/src/lib/nsas/nameserver_address_store.cc (original)
+++ branches/trac408/src/lib/nsas/nameserver_address_store.cc Sat Nov  6 18:34:21 2010
@@ -36,13 +36,14 @@
 // The LRU lists are set equal to three times the size of the respective
 // hash table, on the assumption that three elements is the longest linear
 // search we want to do when looking up names in the hash table.
-NameserverAddressStore::NameserverAddressStore(uint32_t zonehashsize,
-    uint32_t nshashsize) :
+NameserverAddressStore::NameserverAddressStore(ResolverInterface& resolver,
+    uint32_t zonehashsize, uint32_t nshashsize) :
     zone_hash_(new NsasEntryCompare<ZoneEntry>, zonehashsize),
     nameserver_hash_(new NsasEntryCompare<NameserverEntry>, nshashsize),
     zone_lru_((3 * zonehashsize), new HashDeleter<ZoneEntry>(zone_hash_)),
     nameserver_lru_((3 * nshashsize), new HashDeleter<NameserverEntry>(
-        nameserver_hash_))
+        nameserver_hash_)),
+    resolver_(resolver)
 {
 }
 

Modified: branches/trac408/src/lib/nsas/nameserver_address_store.h
==============================================================================
--- branches/trac408/src/lib/nsas/nameserver_address_store.h (original)
+++ branches/trac408/src/lib/nsas/nameserver_address_store.h Sat Nov  6 18:34:21 2010
@@ -27,6 +27,7 @@
 #include "nameserver_entry.h"
 #include "lru_list.h"
 #include "zone_entry.h"
+#include "resolver_interface.h"
 
 namespace isc {
 namespace nsas {
@@ -46,15 +47,17 @@
     /// The constructor sizes all the tables.  As there are various
     /// relationships between the table sizes, and as some values are best as
     /// prime numbers, the table sizes are determined by compile-time values.
-    /// 
+    ///
+    /// \param resolver Which resolver object (or resolver-like, in case of
+    /// tests) should it use to ask questions.
     /// \param zonehashsize Size of the zone hash table.  The default value of
     /// 1009 is the first prime number above 1000.
     /// \param nshash size Size of the nameserver hash table.  The default
     /// value of 2003 is the first prime number over 2000, and by implication,
     /// there is an assumption that there will be more nameservers than zones
     /// in the store.
-    NameserverAddressStore(uint32_t zonehashsize = 1009,
-        uint32_t nshashsize = 3001);
+    NameserverAddressStore(ResolverInterface& resolver,
+        uint32_t zonehashsize = 1009, uint32_t nshashsize = 3001);
 
     /// \brief Destructor
     ///
@@ -99,6 +102,8 @@
     LruList<ZoneEntry>          zone_lru_;
     LruList<NameserverEntry>    nameserver_lru_;
     //}@
+private:
+    ResolverInterface& resolver_;
 };
 
 } // namespace nsas

Modified: branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc
==============================================================================
--- branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc (original)
+++ branches/trac408/src/lib/nsas/tests/nameserver_address_store_unittest.cc Sat Nov  6 18:34:21 2010
@@ -26,12 +26,15 @@
 
 #include <string.h>
 #include <vector>
+#include <cassert>
 
 #include "nameserver_address_store.h"
 #include "nsas_entry_compare.h"
 #include "nameserver_entry.h"
 #include "zone_entry.h"
 #include "nsas_test.h"
+
+using namespace isc::dns;
 
 namespace isc {
 namespace nsas {
@@ -47,8 +50,9 @@
     ///
     /// \param hashsize Size of the zone hash table
     /// \param lrusize Size of the zone hash table
-    DerivedNsas(uint32_t hashsize, uint32_t lrusize) :
-        NameserverAddressStore(hashsize, lrusize)
+    DerivedNsas(ResolverInterface& resolver, uint32_t hashsize,
+        uint32_t lrusize) :
+        NameserverAddressStore(resolver, hashsize, lrusize)
     {}
 
     /// \brief Virtual Destructor
@@ -94,6 +98,13 @@
     // Vector of pointers to nameserver and zone entries.
     std::vector<boost::shared_ptr<NameserverEntry> > nameservers_;
     std::vector<boost::shared_ptr<ZoneEntry> >       zones_;
+
+    class TestResolver : public ResolverInterface {
+        public:
+            virtual void resolve(QuestionPtr, CallbackPtr) {
+                assert(0); // TODO Implement
+            }
+    } defaultTestResolver;
 };
 
 
@@ -105,7 +116,7 @@
 
     // Create a NSAS with a hash size of three and a LRU size of 9 (both zone and
     // nameserver tables).
-    DerivedNsas nsas(2, 2);
+    DerivedNsas nsas(defaultTestResolver, 2, 2);
 
     // Add six entries to the tables.  After addition the reference count of each element
     // should be 3 - one for the entry in the zones_ vector, and one each for the entries
@@ -135,7 +146,7 @@
 
     // Create a NSAS with a hash size of three and a LRU size of 9 (both zone and
     // nameserver tables).
-    DerivedNsas nsas(2, 2);
+    DerivedNsas nsas(defaultTestResolver, 2, 2);
 
     // Add six entries to the tables.  After addition the reference count of each element
     // should be 3 - one for the entry in the nameservers_ vector, and one each for the entries




More information about the bind10-changes mailing list