You can clone with
HTTPS or Subversion.
After serialization, the next big thing is data structures. The first step is to implement support for random block access to files containing so-called block collections. With this, we can reintroduce B-trees into TPIE.
Currently, the stream_accessor class is almost a block collection accessor, except it keeps track of a number of stream properties (item count, item size, items per block) that do not make sense for a block collection.
I am going to introduce a block_accessor of some kind that will share a base class with stream_accessor.
I now have an initial working implementation of B tree insertion and deletion. All values are stored in the leaves, while the internal nodes only replicate the keys.
I have yet to implement range reporting. I am probably going to support two kinds of range reporting:
const Value * a, const Value * b
I've continued the work on the B-tree implementation by @Mortal in the augmented_b_tree branch. Currently range reporting using an OutputIterator and the special-purpose block iterator interface has been implemented.
The B-tree is also augmentable by passing an Augment- and Augmentor-type as template parameters.
I'm going to write some documentation and some more unit tests. I'll also try to reuse the code to implement an internal augmentable ab-tree and see how it performs compared to the one in the dynamic_tree branch
We now have a btree in master.