BIND 10 trac2862, updated. 249acbdc02708dd9c6ea8912a3b29e88aae09160 [2862] Auxiliary function to get list of classes
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Jul 9 11:57:09 UTC 2013
The branch, trac2862 has been updated
via 249acbdc02708dd9c6ea8912a3b29e88aae09160 (commit)
from 16a1ed85d4bf1135008baad41952adcf2195b9a3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 249acbdc02708dd9c6ea8912a3b29e88aae09160
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Tue Jul 9 13:56:48 2013 +0200
[2862] Auxiliary function to get list of classes
-----------------------------------------------------------------------
Summary of changes:
src/bin/auth/datasrc_clients_mgr.h | 18 ++++++++++++++++++
src/bin/auth/tests/datasrc_clients_mgr_unittest.cc | 3 +++
2 files changed, 21 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/bin/auth/datasrc_clients_mgr.h b/src/bin/auth/datasrc_clients_mgr.h
index 2a54dcf..4ee0624 100644
--- a/src/bin/auth/datasrc_clients_mgr.h
+++ b/src/bin/auth/datasrc_clients_mgr.h
@@ -198,6 +198,24 @@ public:
return (it->second);
}
}
+ /// \brief Return list of classes that are present.
+ ///
+ /// Get the list of classes for which there's a client list. It is
+ /// returned in form of a vector, copied from the internals. As the
+ /// number of classes in there is expected to be small, it is not
+ /// a performance issue.
+ ///
+ /// \return The list of classes.
+ /// \throw std::bad_alloc for problems allocating the result.
+ std::vector<dns::RRClass> getClasses() const {
+ std::vector<dns::RRClass> result;
+ for (ClientListsMap::const_iterator it =
+ mgr_.clients_map_->begin(); it != mgr_.clients_map_->end();
+ ++it) {
+ result.push_back(it->first);
+ }
+ return (result);
+ }
private:
DataSrcClientsMgrBase& mgr_;
typename MutexType::Locker locker_;
diff --git a/src/bin/auth/tests/datasrc_clients_mgr_unittest.cc b/src/bin/auth/tests/datasrc_clients_mgr_unittest.cc
index 68ea818..c1ec317 100644
--- a/src/bin/auth/tests/datasrc_clients_mgr_unittest.cc
+++ b/src/bin/auth/tests/datasrc_clients_mgr_unittest.cc
@@ -156,6 +156,7 @@ TEST(DataSrcClientsMgrTest, holder) {
TestDataSrcClientsMgr::Holder holder(mgr);
EXPECT_FALSE(holder.findClientList(RRClass::IN()));
EXPECT_FALSE(holder.findClientList(RRClass::CH()));
+ EXPECT_TRUE(holder.getClasses().empty());
// map should be protected here
EXPECT_EQ(1, FakeDataSrcClientsBuilder::map_mutex->lock_count);
EXPECT_EQ(0, FakeDataSrcClientsBuilder::map_mutex->unlock_count);
@@ -174,6 +175,7 @@ TEST(DataSrcClientsMgrTest, holder) {
TestDataSrcClientsMgr::Holder holder(mgr);
EXPECT_TRUE(holder.findClientList(RRClass::IN()));
EXPECT_TRUE(holder.findClientList(RRClass::CH()));
+ EXPECT_EQ(2, holder.getClasses().size());
}
// We need to clear command queue by hand
FakeDataSrcClientsBuilder::command_queue->clear();
@@ -188,6 +190,7 @@ TEST(DataSrcClientsMgrTest, holder) {
TestDataSrcClientsMgr::Holder holder(mgr);
EXPECT_TRUE(holder.findClientList(RRClass::IN()));
EXPECT_FALSE(holder.findClientList(RRClass::CH()));
+ EXPECT_EQ(RRClass::IN(), holder.getClasses()[0]);
}
// Duplicate lock acquisition is prohibited (only test mgr can detect
More information about the bind10-changes
mailing list