22 #ifndef _PASL_DATA_CHUNKEDSEQ_H_ 
   23 #define _PASL_DATA_CHUNKEDSEQ_H_ 
   38   int Chunk_capacity = 512,
 
   48     int ___Chunk_capacity,
 
   49     class ___Cached_measure,
 
   50     class Top_item_deleter,
 
   51     class Top_item_copier,
 
   57     class ___Chunk_struct,
 
   61   class Item_alloc = std::allocator<Item>
 
   76   using item_queue_type = Chunk_struct<value_type, Chunk_capacity, item_allocator_type>;
 
   85 #ifdef DISABLE_RANDOM_ACCESS_ITERATOR 
   90 #ifndef ENABLE_FINGER_SEARCH 
  123       : client_meas(client_meas) { }
 
  128         m.value2 = client_meas(v);
 
  134         for (
auto p = lo; p < hi; p++)
 
  141         m.value1 = p->
size();
 
  148         for (
auto p = lo; p < hi; p++)
 
  158         this->client_meas = client_meas;
 
  164       std::swap(x.value1, y.value1);
 
  165       std::swap(x.value2, y.value2);
 
  192 #ifdef DEBUG_MIDDLE_SEQUENCE 
  194   static constexpr 
int middle_capacity = 1<<23;
 
  212 namespace bootstrapped {
 
  218   int Chunk_capacity=512,
 
  223     class Chunk_item_alloc = std::allocator<Item>
 
  226   class Item_alloc = std::allocator<Item>
 
  234   int Chunk_capacity = 512,
 
  236   class Item_alloc = std::allocator<Item>
 
  251   int Chunk_capacity = 512,
 
  256     class Chunk_item_alloc = std::allocator<Item>
 
  259   class Item_alloc = std::allocator<Item>
 
  268   int Chunk_capacity = 512,
 
  270   class Item_alloc = std::allocator<Item>
 
algebra::combiner< size_algebra_type, client_algebra_type > middle_algebra_type
 
measured_type operator()(const client_value_type &v) const 
 
static constexpr bool enable_index_optimization
 
typename middle_cache_type::measure_type middle_measure_type
 
measured_type operator()(const client_value_type *lo, const client_value_type *hi) const 
 
static value_type identity()
 
Fixed-capacity ring buffer. 
 
base::ringbuffer_ptr< base::heap_allocator< Item, Capacity+1 >> ringbuffer_ptr
 
static constexpr size_type chunk_capacity
 
bootchunkseq< bootchunkseq_deque_config< Item, cachedmeasure::trivial< Item, size_t >, Capacity >> cdeque
 
static client_measured_type cclient(middle_measured_type m)
 
Fixed-capacity array along with cached measurement of array contents. 
 
typename Client_cache::size_type size_type
 
static value_type combine(value_type x, value_type y)
 
Middle_sequence< chunk_type, middle_chunk_capacity, middle_cache_type, Pointer_deleter, Pointer_deep_copier, fixedcapacity::heap_allocated::ringbuffer_ptr, size_access > middle_type
 
void set_client_measure(client_measure_type client_meas)
 
Chunk_struct< value_type, Chunk_capacity, item_allocator_type > item_queue_type
 
Representation of a chunk. 
 
typename chunk_cache_type::measured_type chunk_measured_type
 
Hinze & Patterson's 2-3 finger tree. 
 
typename middle_algebra_type::value_type middle_measured_type
 
Client_cache chunk_cache_type
 
base::ringbuffer_ptrx< base::heap_allocator< Item, Capacity+1 >> ringbuffer_ptrx
 
[int_group_under_addition_and_negation] 
 
Definitions of a few cached-measurement policies. 
 
measure::measured_pair< value1_type, value2_type > value_type
 
typename queue_type::value_type value_type
 
static void swap(measured_type &x, measured_type &y)
 
typename Client_cache::measure_type client_measure_type
 
ptrdiff_t difference_type
 
chunk< item_queue_type, chunk_cache_type, annotation_type > chunk_type
 
typename chunk_type::value_type client_value_type
 
Item_alloc item_allocator_type
 
static size_type csize(middle_measured_type m)
 
Chunked-sequence functor. 
 
measured_type operator()(const value_type *lo, const value_type *hi) const 
 
measured_type get_cached() const 
 
static constexpr int middle_chunk_capacity
 
static size_type & size(middle_measured_type &m)
 
Representation of a chunk. 
 
static client_measured_type & client(middle_measured_type &m)
 
typename Client_cache::size_type size_type
 
measured_type operator()(value_type p) const 
 
typename Client_cache::algebra_type client_algebra_type
 
chunk_measured_type client_measured_type
 
typename algebra_type::value_type measured_type
 
client_measure_type get_client_measure() const 
 
measure_type(const client_measure_type &client_meas)