[svn] commit: r3420 - in /branches/trac356/src/lib/nsas: ./ tests/

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Nov 2 14:37:29 UTC 2010


Author: stephen
Date: Tue Nov  2 14:37:29 2010
New Revision: 3420

Log:
Add first part of the main NameserverAddressStore class.

Added:
    branches/trac356/src/lib/nsas/nameserver_address_store.cc
    branches/trac356/src/lib/nsas/nameserver_address_store.h
    branches/trac356/src/lib/nsas/tests/nameserver_address_store_unittest.cc
    branches/trac356/src/lib/nsas/tests/zone_entry_unittest.cc
Modified:
    branches/trac356/src/lib/nsas/Makefile.am
    branches/trac356/src/lib/nsas/hash_deleter.h
    branches/trac356/src/lib/nsas/lru_list.h
    branches/trac356/src/lib/nsas/nameserver_entry.h
    branches/trac356/src/lib/nsas/tests/Makefile.am
    branches/trac356/src/lib/nsas/tests/lru_list_unittest.cc
    branches/trac356/src/lib/nsas/zone_entry.h

Modified: branches/trac356/src/lib/nsas/Makefile.am
==============================================================================
--- branches/trac356/src/lib/nsas/Makefile.am (original)
+++ branches/trac356/src/lib/nsas/Makefile.am Tue Nov  2 14:37:29 2010
@@ -8,13 +8,16 @@
 
 lib_LTLIBRARIES = libnsas.la
 libnsas_la_SOURCES  = address_entry.h address_entry.cc
+libnsas_la_SOURCES += asiolink.h
 libnsas_la_SOURCES += hash.cc hash.h
 libnsas_la_SOURCES += hash_deleter.h
 libnsas_la_SOURCES += hash_key.cc hash_key.h
 libnsas_la_SOURCES += hash_table.h
 libnsas_la_SOURCES += lru_list.h
+libnsas_la_SOURCES += nameserver_address_store.cc nameserver_address_store.h
 libnsas_la_SOURCES += nameserver_entry.cc nameserver_entry.h
+libnsas_la_SOURCES += nsas_entry_compare.h
 libnsas_la_SOURCES += nsas_entry.h
-libnsas_la_SOURCES += asiolink.h
+libnsas_la_SOURCES += zone_entry.h
 
 CLEANFILES = *.gcno *.gcda

Modified: branches/trac356/src/lib/nsas/hash_deleter.h
==============================================================================
--- branches/trac356/src/lib/nsas/hash_deleter.h (original)
+++ branches/trac356/src/lib/nsas/hash_deleter.h Tue Nov  2 14:37:29 2010
@@ -19,6 +19,7 @@
 
 #include <boost/shared_ptr.hpp>
 #include "hash_table.h"
+#include "lru_list.h"
 
 namespace isc {
 namespace nsas {
@@ -53,7 +54,7 @@
     /// Performs the deletion of the zone entry from the hash table.
     ///
     /// \param element Element to be deleted
-    virtual void operator()(boost::shared_ptr<T>& element);
+    virtual void operator()(T* element) const;
 
 private:
     HashTable<T>& hashtable_;         ///< Hash table to access element
@@ -61,7 +62,7 @@
 
 // delete the object from the relevant hash table
 template <class T>
-void HashDeleter<T>::operator()(boost::shared_ptr<T>& element) {
+void HashDeleter<T>::operator()(T* element) const {
     hashtable_.remove(element->hashKey());
 }
 

Modified: branches/trac356/src/lib/nsas/lru_list.h
==============================================================================
--- branches/trac356/src/lib/nsas/lru_list.h (original)
+++ branches/trac356/src/lib/nsas/lru_list.h Tue Nov  2 14:37:29 2010
@@ -66,7 +66,7 @@
         /// LRU list.
         ///
         /// \param drop Object being dropped.
-        virtual void operator()(boost::shared_ptr<T>& drop) = 0;
+        virtual void operator()(T* drop) const = 0;
     };
 
     /// \brief Constructor
@@ -171,7 +171,7 @@
 
             // to-be-dropped object.
             if (dropped_) {
-                (*dropped_)(*lru_.begin());
+                (*dropped_)(lru_.begin()->get());
             }
 
             // ... and get rid of it from the list

Modified: branches/trac356/src/lib/nsas/nameserver_entry.h
==============================================================================
--- branches/trac356/src/lib/nsas/nameserver_entry.h (original)
+++ branches/trac356/src/lib/nsas/nameserver_entry.h Tue Nov  2 14:37:29 2010
@@ -87,9 +87,9 @@
     /// \brief Constructor where no A records are supplied.
     ///
     /// \param name Name of the nameserver,
-    /// \param classCode class of the nameserver
-    NameserverEntry(const std::string& name, uint16_t classCode) :
-        name_(name), classCode_(classCode)
+    /// \param class_code class of the nameserver
+    NameserverEntry(const std::string& name, uint16_t class_code) :
+        name_(name), classCode_(class_code)
     {}
 
     /// Constructor where one or more RRsets of A/AAAA records are supplied.

Modified: branches/trac356/src/lib/nsas/tests/Makefile.am
==============================================================================
--- branches/trac356/src/lib/nsas/tests/Makefile.am (original)
+++ branches/trac356/src/lib/nsas/tests/Makefile.am Tue Nov  2 14:37:29 2010
@@ -23,9 +23,11 @@
 run_unittests_SOURCES += hash_table_unittest.cc
 run_unittests_SOURCES += hash_unittest.cc
 run_unittests_SOURCES += lru_list_unittest.cc
+run_unittests_SOURCES += nameserver_address_store_unittest.cc
 run_unittests_SOURCES += nameserver_entry_unittest.cc
 run_unittests_SOURCES += nsas_entry_compare_unittest.cc
 run_unittests_SOURCES += nsas_test_utilities.h 
+run_unittests_SOURCES += zone_entry_unittest.cc
 
 run_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
 run_unittests_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS)

Modified: branches/trac356/src/lib/nsas/tests/lru_list_unittest.cc
==============================================================================
--- branches/trac356/src/lib/nsas/tests/lru_list_unittest.cc (original)
+++ branches/trac356/src/lib/nsas/tests/lru_list_unittest.cc Tue Nov  2 14:37:29 2010
@@ -39,7 +39,7 @@
 /// MS bit on the 16-bit class value.
 class Dropped : public LruList<TestEntry>::Dropped {
 public:
-    virtual void operator()(boost::shared_ptr<TestEntry>& entry) {
+    virtual void operator()(TestEntry* entry) const {
         entry->setClass(entry->getClass() | 0x8000);
     }
 };

Modified: branches/trac356/src/lib/nsas/zone_entry.h
==============================================================================
--- branches/trac356/src/lib/nsas/zone_entry.h (original)
+++ branches/trac356/src/lib/nsas/zone_entry.h Tue Nov  2 14:37:29 2010
@@ -19,11 +19,17 @@
 
 #include <string>
 #include <vector>
-#include <boost/thread.h>
-#include <boost/shared_ptr.h>
+#include <boost/thread.hpp>
+#include <boost/shared_ptr.hpp>
 
+#include "rrset.h"
+
+#include "hash_key.h"
 #include "nsas_entry.h"
 #include "asiolink.h"
+
+namespace isc {
+namespace nsas {
 
 class NameserverEntry;
 
@@ -39,27 +45,55 @@
 class ZoneEntry : public NsasEntry<ZoneEntry> {
 public:
 
+    /// \brief Constructor where no NS records are supplied
+    ///
+    /// \param name Name of the zone
+    /// \param class_code Class of this zone (zones of different classes have
+    /// different objects.
+    ZoneEntry(const std::string& name, uint16_t class_code) :
+        name_(name), classCode_(class_code)
+    {}
+
     /// \brief Constructor
     ///
     /// Creates a zone entry object with an RRset representing the nameservers,
     /// plus possibly additional RRsets holding address information.
-    ZoneEntry(AbstractRRset* nsrrset,
-            const std::vector<AbstractRRSet*>& additional);
+    //ZoneEntry(isc::dns::AbstractRRset* nsrrset,
+    //       const std::vector<isc::dns::AbstractRRset*>& additional);
+
+    /// \brief Destructor
+    virtual ~ZoneEntry()
+    {}
+
+    /// \return Name of the zone
+    virtual std::string getName() const {
+        return name_;
+    }
+
+    /// \return Class of zone
+    virtual short getClass() const {
+        return classCode_;
+    }
+
+    /// \return Return Hash Key
+    virtual HashKey hashKey() const {
+        return HashKey(name_, classCode_);
+    }
 
     /// \brief Lookup Address
     ///
     /// Returns the address with the lowest RTT.
-    asiolink::IOAddress getAddress() const;
-
-public:
-    void updateNS
+    //virtual asiolink::IOAddress getAddress() const;
 
 private:
     boost::mutex    mutex_;     ///< Mutex protecting this zone entry
     std::string     name_;      ///< Canonical zone name
-    short           classCode_; ///< Class code
+    uint16_t        classCode_; ///< Class code
     std::vector<boost::shared_ptr<NameserverEntry> > nameservers_; ///< Nameservers
     time_t          expiry_;    ///< Expiry time of this entry
 };
+
+} // namespace nsas
+} // namespace isc
  
 #endif // __ZONE_ENTRY_H




More information about the bind10-changes mailing list