[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