From: JINMEI Tatuya Date: Tue, 13 Nov 2012 02:24:49 +0000 (-0800) Subject: [2420] cleanup: unify getCoveredType() used in 2 .cc's. X-Git-Tag: bind10-1.0.0-beta-release~52^2~1^2~2^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7eb7d5efa51485ec96434c08249856cc8cf7c8c9;p=thirdparty%2Fkea.git [2420] cleanup: unify getCoveredType() used in 2 .cc's. note: due to the slightly different definition the one used in rdataset.cc is still there. --- diff --git a/src/lib/datasrc/memory/Makefile.am b/src/lib/datasrc/memory/Makefile.am index 7b82269c0b..72b3273299 100644 --- a/src/lib/datasrc/memory/Makefile.am +++ b/src/lib/datasrc/memory/Makefile.am @@ -27,6 +27,7 @@ libdatasrc_memory_la_SOURCES += memory_client.h memory_client.cc libdatasrc_memory_la_SOURCES += zone_writer.h libdatasrc_memory_la_SOURCES += zone_writer_local.h zone_writer_local.cc libdatasrc_memory_la_SOURCES += load_action.h +libdatasrc_memory_la_SOURCES += util_internal.h nodist_libdatasrc_memory_la_SOURCES = memory_messages.h memory_messages.cc diff --git a/src/lib/datasrc/memory/util_internal.h b/src/lib/datasrc/memory/util_internal.h new file mode 100644 index 0000000000..05aaa29a9c --- /dev/null +++ b/src/lib/datasrc/memory/util_internal.h @@ -0,0 +1,57 @@ +// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC") +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +#ifndef DATASRC_MEMORY_UTIL_INTERNAL_H +#define DATASRC_MEMORY_UTIL_INTERNAL_H 1 + +#include +#include +#include + +namespace isc { +namespace datasrc { +namespace memory { +namespace detail { + +/// \brief Return the covered RR type of an RRSIG RRset. +/// +/// This is a commonly used helper to extract the type covered field of an +/// RRSIG RRset and return it in the form of an RRType object. +/// +/// Normally, an empty RRSIG shouldn't be passed to this function, whether +/// it comes from a master file or another data source iterator, but it could +/// still happen in some buggy situations. This function catches and rejects +/// such cases. +inline dns::RRType +getCoveredType(const dns::ConstRRsetPtr& sig_rrset) { + dns::RdataIteratorPtr it = sig_rrset->getRdataIterator(); + if (it->isLast()) { + isc_throw(isc::Unexpected, + "Empty RRset is passed in-memory loader, name: " + << sig_rrset->getName()); + } + return (dynamic_cast(it->getCurrent()). + typeCovered()); +} + +} // namespace detail +} // namespace memory +} // namespace datasrc +} // namespace isc + +#endif // DATASRC_MEMORY_UTIL_INTERNAL_H + +// Local Variables: +// mode: c++ +// End: diff --git a/src/lib/datasrc/memory/zone_data_loader.cc b/src/lib/datasrc/memory/zone_data_loader.cc index 182de9c6e8..791f3ff73f 100644 --- a/src/lib/datasrc/memory/zone_data_loader.cc +++ b/src/lib/datasrc/memory/zone_data_loader.cc @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -35,6 +36,7 @@ namespace datasrc { namespace memory { using detail::SegmentObjectHolder; +using detail::getCoveredType; namespace { // unnamed namespace @@ -75,8 +77,6 @@ private: typedef NodeRRsets::value_type NodeRRsetsVal; // A helper to identify the covered type of an RRSIG. - static isc::dns::RRType getCoveredType - (const isc::dns::ConstRRsetPtr& sig_rrset); const isc::dns::Name& getCurrentName() const; private: @@ -137,21 +137,6 @@ ZoneDataLoader::flushNodeRRsets() { node_rrsigsets_.clear(); } -RRType -ZoneDataLoader::getCoveredType(const ConstRRsetPtr& sig_rrset) { - RdataIteratorPtr it = sig_rrset->getRdataIterator(); - // Empty RRSIG shouldn't be passed either via a master file or - // another data source iterator, but it could still happen if the - // iterator has a bug. We catch and reject such cases. - if (it->isLast()) { - isc_throw(isc::Unexpected, - "Empty RRset is passed in-memory loader, name: " - << sig_rrset->getName()); - } - return (dynamic_cast(it->getCurrent()). - typeCovered()); -} - const Name& ZoneDataLoader::getCurrentName() const { if (!node_rrsets_.empty()) { diff --git a/src/lib/datasrc/memory/zone_data_updater.cc b/src/lib/datasrc/memory/zone_data_updater.cc index e0f9bfc598..7b8393d8e9 100644 --- a/src/lib/datasrc/memory/zone_data_updater.cc +++ b/src/lib/datasrc/memory/zone_data_updater.cc @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -29,6 +30,8 @@ namespace isc { namespace datasrc { namespace memory { +using detail::getCoveredType; + void ZoneDataUpdater::addWildcards(const Name& name) { Name wname(name); @@ -332,23 +335,6 @@ ZoneDataUpdater::addRdataSet(const Name& name, const RRType& rrtype, } } -namespace { -RRType -getCoveredType(const ConstRRsetPtr& sig_rrset) { - RdataIteratorPtr it = sig_rrset->getRdataIterator(); - // Empty RRSIG shouldn't be passed either via a master file or - // another data source iterator, but it could still happen if the - // iterator has a bug. We catch and reject such cases. - if (it->isLast()) { - isc_throw(isc::Unexpected, - "Empty RRset is passed in-memory loader, name: " - << sig_rrset->getName()); - } - return (dynamic_cast(it->getCurrent()). - typeCovered()); -} -} - void ZoneDataUpdater::add(const ConstRRsetPtr& rrset, const ConstRRsetPtr& sig_rrset)