chunkedseq
container library for large in-memory data sets
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Public Types | Static Public Attributes | List of all members
pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc > Class Template Reference

#include <chunkedseq.hpp>

Classes

class  middle_cache_type
 
class  size_access
 

Public Types

using size_type = typename Client_cache::size_type
 
using difference_type = ptrdiff_t
 
using value_type = Item
 
using segment_type = segment< value_type * >
 
using item_allocator_type = Item_alloc
 
using item_queue_type = Chunk_struct< value_type, Chunk_capacity, item_allocator_type >
 
using client_algebra_type = typename Client_cache::algebra_type
 
using size_algebra_type = algebra::int_group_under_addition_and_negation< size_type >
 
using middle_algebra_type = algebra::combiner< size_algebra_type, client_algebra_type >
 
using middle_measured_type = typename middle_algebra_type::value_type
 
using chunk_cache_type = Client_cache
 
using chunk_measured_type = typename chunk_cache_type::measured_type
 
using cached_prefix_type = annotation::with_measured< middle_measured_type >
 
using parent_pointer_type = annotation::without_parent_pointer
 
using annotation_type = annotation::annotation_builder< cached_prefix_type, parent_pointer_type >
 
using chunk_type = chunk< item_queue_type, chunk_cache_type, annotation_type >
 
using middle_measure_type = typename middle_cache_type::measure_type
 
using middle_type = Middle_sequence< chunk_type, middle_chunk_capacity, middle_cache_type, Pointer_deleter, Pointer_deep_copier, fixedcapacity::heap_allocated::ringbuffer_ptr, size_access >
 
using chunk_search_type = itemsearch::search_in_chunk< chunk_type, middle_algebra_type, size_access >
 

Static Public Attributes

static constexpr size_type chunk_capacity = size_type(Chunk_capacity)
 
static constexpr int middle_chunk_capacity = 32
 

Detailed Description

template<class Item, int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
class pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >

Definition at line 63 of file chunkedseq.hpp.

Member Typedef Documentation

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::annotation_type = annotation::annotation_builder<cached_prefix_type, parent_pointer_type>

Definition at line 97 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::cached_prefix_type = annotation::with_measured<middle_measured_type>

Definition at line 88 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::chunk_cache_type = Client_cache

Definition at line 83 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::chunk_measured_type = typename chunk_cache_type::measured_type

Definition at line 84 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::chunk_search_type = itemsearch::search_in_chunk<chunk_type, middle_algebra_type, size_access>

Definition at line 205 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::chunk_type = chunk<item_queue_type, chunk_cache_type, annotation_type>

Definition at line 98 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::client_algebra_type = typename Client_cache::algebra_type

Definition at line 78 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::difference_type = ptrdiff_t

Definition at line 67 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::item_allocator_type = Item_alloc

Definition at line 74 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::item_queue_type = Chunk_struct<value_type, Chunk_capacity, item_allocator_type>

Definition at line 76 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::middle_algebra_type = algebra::combiner<size_algebra_type, client_algebra_type>

Definition at line 80 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::middle_measure_type = typename middle_cache_type::measure_type

Definition at line 170 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::middle_measured_type = typename middle_algebra_type::value_type

Definition at line 81 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::middle_type = Middle_sequence<chunk_type, middle_chunk_capacity, middle_cache_type, Pointer_deleter, Pointer_deep_copier, fixedcapacity::heap_allocated::ringbuffer_ptr, size_access>

Definition at line 202 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::parent_pointer_type = annotation::without_parent_pointer
Todo:

fix bug in finger search that is causing iterator-based traversal to fail unit test in mode -generate_by_insert 1

once finger search bug is fixed, enable finger search by default

Definition at line 93 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::segment_type = segment<value_type*>

Definition at line 70 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::size_algebra_type = algebra::int_group_under_addition_and_negation<size_type>

Definition at line 79 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::size_type = typename Client_cache::size_type

Definition at line 66 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
using pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::value_type = Item

Definition at line 69 of file chunkedseq.hpp.

Member Data Documentation

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
constexpr size_type pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::chunk_capacity = size_type(Chunk_capacity)
static

Definition at line 72 of file chunkedseq.hpp.

template<class Item , int Chunk_capacity = 512, class Client_cache = cachedmeasure::trivial<Item, size_t>, template< class Chunk_item, int Capacity, class Item_alloc > class Chunk_struct = fixedcapacity::heap_allocated::ringbuffer_ptr, template< class Top_item_base, int ___Chunk_capacity, class ___Cached_measure, class Top_item_deleter, class Top_item_copier, template< class ___Item, int ___Capacity, class ___Item_alloc >class ___Chunk_struct, class Size_access > class Middle_sequence = bootchunkedseq::cdeque, class Item_alloc = std::allocator<Item>>
constexpr int pasl::data::chunkedseq::basic_deque_configuration< Item, Chunk_capacity, Client_cache, Chunk_struct, Middle_sequence, Item_alloc >::middle_chunk_capacity = 32
static

Definition at line 200 of file chunkedseq.hpp.


The documentation for this class was generated from the following file: