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