BIND 10 #2098: Define and Implement `TreeNodeRRset` class

BIND 10 Development do-not-reply at isc.org
Tue Jul 3 06:55:23 UTC 2012


#2098: Define and Implement `TreeNodeRRset` class
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:
  jinmei                             |                Status:  new
                       Type:  task   |             Milestone:  Next-Sprint-
                   Priority:         |  Proposed
  medium                             |            Resolution:
                  Component:  data   |             Sensitive:  0
  source                             |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  0
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
  scalable inmemory                  |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Description changed by jinmei:

Old description:

> (Since some people seem to react to the term "RBTree" knee-jerk, this
> is given a more generic name.  For the same reason we might want to
> make it a templated class).
>
> This is a revised version of `RBNodeRRset`.  It will take `RBNode` (or
> "`TreeNode`") and `RdataSet` and hold pointers to them.  All of its
> public interfaces are implemented through the underlying tree node and
> RdataSet.  In the initial version, we could omit many of them "not
> implemented": all setXXX can be skipped.  Even getRdataIterator() can
> be skipped.  Some can be inefficient for now (e.g. getName()).
>
> The only important part is the toWire() method.  It will use the
> encoded version of iterator, and render names using `LabelSequence`.
>
> Depends on #2097 and (at least) #2093.

New description:

 (Since some people seem to react to the term "RBTree" knee-jerk, this
 is given a more generic name.  For the same reason we might want to
 make it a templated class).

 This is a revised version of `RBNodeRRset`.  It will take `RBNode` (or
 "`TreeNode`") and `RdataSet` and hold pointers to them.  All of its
 public interfaces are implemented through the underlying tree node and
 `RdataSet`.  In the initial version, we could omit many of them "not
 implemented": all setXXX can be skipped.  Even getRdataIterator() can
 be skipped.  Some can be inefficient for now (e.g. getName()).

 The only important part is the toWire() method.  It will use the
 encoded version of iterator, and render names using `Label Sequence`.

 To be more specific about what should be done in this task: my
 suggestion is to implement:

 - constructor
 - getClass
 - getType
 - getName (in an inefficient way)
 - toWire (could be only for the renderer)
 - empty implementation of getRRsig (just return a null pointer)

 Everything else can be "throw not_implemented" for now.

 This will leave one non trivial open issue: how to render signed
 RRset.  I have some suggestion that I've not mentioned yet, but I'd
 defer it for a separate discussion and for a later sprint.

 Depends on #2097 and (at least) #2093.

--

-- 
Ticket URL: <http://bind10.isc.org/ticket/2098#comment:1>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list