BIND 10 #2906: define and implement (generic) ZoneTable class
BIND 10 Development
do-not-reply at isc.org
Wed May 1 12:29:33 UTC 2013
#2906: define and implement (generic) ZoneTable class
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: task | jinmei
Priority: medium | Status:
Component: data source | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-20130514
Sub-Project: DNS | Resolution:
Estimated Difficulty: 5 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| shared memory data source
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by muks):
* owner: muks => jinmei
Comment:
Hi Jinmei
Here are my review comments.
* I got the following compile error when building the branch:
{{{
make[6]: Entering directory `/home/muks/bind10/src/lib/datasrc'
CXX zone_table_accessor_cache.lo
In file included from zone_table_accessor_cache.cc:15:0:
../../../src/lib/datasrc/zone_table_accessor_cache.h:42:7: error: direct
base 'boost::noncopyable_::noncopyable' inaccessible in
'isc::datasrc::internal::ZoneTableAccessorCache' due to ambiguity
[-Werror]
cc1plus: all warnings being treated as errors
}}}
This could be worked around using the following patch (as
`ZoneTableAccessor` already derives from `boost::noncopyable`:
{{{
-class ZoneTableAccessorCache : boost::noncopyable, public
ZoneTableAccessor {
+class ZoneTableAccessorCache : public ZoneTableAccessor {
}}}
I went ahead and pushed this, as otherwise it generated an intermixed
diff with with some comment updates I made in
`ZoneTableAccessorCache`. :)
* Just to clarify, we allow the use of `struct` (vs. `class` keyword)
when there is code in the structure in our coding style, correct? It's
a nice way to say `ZoneSpec` is fully public, but I want to know if we
have any (unwritten) restrictions in our coding guidelines about it.
* In the documentation for `ZoneTableIterator` class, in the following
text, isn't it the case that they go through all the zones until
`isLast()` returns true?
{{{
/// and that subsequent calls to \c getCurrent() go through all the zones
/// one by one, until \c isLast() returns false. The implementation must
/// support the concept of "empty table"; in that case \c isLast() will
/// return \c false from the beginning.
}}}
Also, it should likely say that "... subsequent calls to \c next() go
through all the zones..." instead of `getCurrent()`.
* I am not sure if `it_begin_` and `it_end_` should be members of the
iterator. They waste space there as they are properties of the
`ZoneTableAccessorCache` itself. Instead of checking `isLast()`, we
could test the current iterator for equality against
`ZoneTableAccessor::end()`. This would lend nicely to any future
refinement of the iterator too. Then again, maybe it is not
straightforward to implement this due to other constraints.
* I pushed some minor comment update commits to the branch. Please check
them.
--
Ticket URL: <http://bind10.isc.org/ticket/2906#comment:8>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list