13 #ifndef STXXL_MNG_READ_WRITE_POOL_HEADER
14 #define STXXL_MNG_READ_WRITE_POOL_HEADER
26 template <
typename BlockType>
31 typedef typename block_type::bid_type
bid_type;
54 w_pool(&w_pool), p_pool(&p_pool), delete_pools(false)
59 std::swap(w_pool, obj.
w_pool);
60 std::swap(p_pool, obj.
p_pool);
83 w_pool->resize(new_size);
90 p_pool->resize(new_size);
107 if (p_pool->invalidate(bid))
108 p_pool->hint(bid, *w_pool);
117 return w_pool->steal();
136 return p_pool->hint(bid, *w_pool);
141 return p_pool->invalidate(bid);
152 return p_pool->read(block, bid, *w_pool);
163 template <
class BlockType>
172 #endif // !STXXL_MNG_READ_WRITE_POOL_HEADER
bool invalidate(bid_type bid)
read_write_pool(size_type init_size_prefetch=1, size_type init_size_write=1)
Constructs pool.
bool hint(bid_type bid)
Gives a hint for prefetching a block.
prefetch_pool< block_type > prefetch_pool_type
void swap(read_write_pool &obj)
virtual ~read_write_pool()
Waits for completion of all ongoing requests and frees memory.
request_ptr read(block_type *&block, bid_type bid)
Reads block. If this block is cached block is not read but passed from the cache. ...
#define STXXL_DEPRECATED(x)
Implements dynamically resizable buffered writing pool.
Implements dynamically resizable prefetching pool.
void add(block_type *&block)
Implements dynamically resizable buffered writing and prefetched reading pool.
write_pool< block_type > write_pool_type
read_write_pool(prefetch_pool_type &p_pool, write_pool_type &w_pool)
request_ptr write(block_type *&block, bid_type bid)
Passes a block to the pool for writing.
void resize_prefetch(size_type new_size)
Resizes size of the pool.
#define STXXL_BEGIN_NAMESPACE
block_type * steal()
Take out a block from the pool.
choose_int_types< my_pointer_size >::unsigned_type unsigned_type
size_type size_prefetch() const
Returns number of blocks owned by the prefetch_pool.
block_type::bid_type bid_type
prefetch_pool_type * p_pool
void resize_write(size_type new_size)
Resizes size of the pool.
size_type size_write() const
Returns number of blocks owned by the write_pool.
#define STXXL_END_NAMESPACE