|
| LambdaBTreeSet (const Comparator &comp=Comparator()) |
| A default constructor creating an empty set. More...
|
|
template<typename Iter > |
| LambdaBTreeSet (const Iter &a, const Iter &b) |
| A constructor creating a set based on the given range. More...
|
|
| LambdaBTreeSet (const LambdaBTreeSet &other) |
|
| LambdaBTreeSet (LambdaBTreeSet &&other) |
|
LambdaBTreeSet & | operator= (const LambdaBTreeSet &other) |
|
void | insert (const Iter &a, const Iter &b) |
| Inserts the given range of elements into this tree. More...
|
|
Functor::result_type | insert (Key &k, const Functor &f) |
| Inserts the given key into this tree. More...
|
|
Functor::result_type | insert (Key &k, typename parenttype::operation_hints &hints, const Functor &f) |
|
| LambdaBTree (const detail::comparator< Key > &comp=detail::comparator< Key >(), const detail::comparator< Key > &weak_comp=detail::comparator< Key >()) |
|
bool | operator!= (const LambdaBTree &other) const |
|
LambdaBTree & | operator= (const LambdaBTree &other) |
|
bool | operator== (const LambdaBTree &other) const |
|
void | swap (LambdaBTree &other) |
| Swaps the content of this tree with the given tree. More...
|
|
iterator | begin () const |
|
| btree (btree &&other) |
|
| btree (const btree &set) |
|
| btree (const Iter &a, const Iter &b) |
|
| btree (detail::comparator< Key > comp=detail::comparator< Key >(), detail::comparator< Key > weak_comp=detail::comparator< Key >()) |
|
bool | check () |
| Checks the consistency of this tree. More...
|
|
void | clear () |
| Clears this tree. More...
|
|
bool | contains (const Key &k) const |
| Determines whether the given element is a member of this tree. More...
|
|
bool | contains (const Key &k, operation_hints &hints) const |
| Determines whether the given element is a member of this tree. More...
|
|
bool | empty () const |
|
iterator | end () const |
|
iterator | find (const Key &k) const |
| Locates the given key within this tree and returns an iterator referencing its position. More...
|
|
iterator | find (const Key &k, operation_hints &hints) const |
| Locates the given key within this tree and returns an iterator referencing its position. More...
|
|
std::vector< chunk > | getChunks (size_type num) const |
|
size_type | getDepth () const |
|
size_type | getMemoryUsage () const |
|
size_type | getNumNodes () const |
|
void | insert (const Iter &a, const Iter &b) |
| Inserts the given range of elements into this tree. More...
|
|
bool | insert (const Key &k) |
| Inserts the given key into this tree. More...
|
|
bool | insert (const Key &k, operation_hints &hints) |
| Inserts the given key into this tree. More...
|
|
iterator | lower_bound (const Key &k) const |
| Obtains a lower boundary for the given key – hence an iterator referencing the smallest value that is not less the given key. More...
|
|
iterator | lower_bound (const Key &k, operation_hints &hints) const |
| Obtains a lower boundary for the given key – hence an iterator referencing the smallest value that is not less the given key. More...
|
|
bool | operator!= (const btree &other) const |
|
btree & | operator= (const btree &other) |
|
bool | operator== (const btree &other) const |
|
std::vector< chunk > | partition (size_type num) const |
| Partitions the full range of this set into up to a given number of chunks. More...
|
|
void | printStats (std::ostream &out=std::cout) const |
| Prints a textual summary of statistical properties of this tree to the given output stream (for debugging and tuning). More...
|
|
void | printTree (std::ostream &out=std::cout) const |
|
size_type | size () const |
|
void | swap (btree &other) |
| Swaps the content of this tree with the given tree. More...
|
|
iterator | upper_bound (const Key &k) const |
| Obtains an upper boundary for the given key – hence an iterator referencing the first element that the given key is less than the referenced value. More...
|
|
iterator | upper_bound (const Key &k, operation_hints &hints) const |
| Obtains an upper boundary for the given key – hence an iterator referencing the first element that the given key is less than the referenced value. More...
|
|
| ~btree () |
|
|
using | parenttype = btree< Key, detail::comparator< Key >, std::allocator< Key >, blockSize, typename detail::default_strategy< Key >::type, isSet, detail::comparator< Key >, detail::updater< Key > > |
|
using | chunk = range< iterator > |
|
using | const_iterator = iterator |
|
using | element_type = Key |
|
using | key_type = Key |
|
using | operation_hints = btree_operation_hints< 1 > |
|
static constexpr size_t | max_keys_per_node |
|
using | field_index_type = uint8_t |
|
using | lock_type = OptimisticReadWriteLock |
|
using | size_type = std::size_t |
|
| btree (size_type, node *root, leaf_node *leftmost) |
| An internal constructor enabling the specific creation of a tree based on internal parameters. More...
|
|
bool | covers (const node *node, const Key &k) const |
| Determines whether the range covered by the given node is also covering the given key value. More...
|
|
bool | equal (const Key &a, const Key &b) const |
|
bool | less (const Key &a, const Key &b) const |
|
void | update (Key &old_k, const Key &new_k) |
|
bool | weak_covers (const node *node, const Key &k) const |
| Determines whether the range covered by the given node is also covering the given key value. More...
|
|
bool | weak_equal (const Key &a, const Key &b) const |
|
bool | weak_less (const Key &a, const Key &b) const |
|
detail::comparator< Key > | comp |
|
hint_statistics | hint_stats |
|
leaf_node * | leftmost |
|
node * | root |
|
lock_type | root_lock |
|
detail::updater< Key > | upd |
|
detail::comparator< Key > | weak_comp |
|
const static typename detail::default_strategy< Key >::type | search |
|
template<typename Key, typename Functor, typename Comparator = detail::comparator<Key>, typename Allocator = std::allocator<Key>, unsigned blockSize = 256, typename SearchStrategy = typename detail::default_strategy<Key>::type>
class souffle::LambdaBTreeSet< Key, Functor, Comparator, Allocator, blockSize, SearchStrategy >
A b-tree based set implementation.
- Template Parameters
-
Key | .. the element type to be stored in this set |
Functor | .. a std::function that is invoked on successful insert |
Comparator | .. a class defining an order on the stored elements |
Allocator | .. utilized for allocating memory for required nodes |
blockSize | .. determines the number of bytes/block utilized by leaf nodes |
SearchStrategy | .. enables switching between linear, binary or any other search strategy |
Definition at line 584 of file LambdaBTree.h.
template<typename Key , typename Functor , typename Comparator = detail::comparator<Key>, typename Allocator = std::allocator<Key>, unsigned blockSize = 256, typename SearchStrategy = typename detail::default_strategy<Key>::type>
template<typename s , typename n , typename l >