13 #ifndef STXXL_MNG_READ_WRITE_POOL_H
14 #define STXXL_MNG_READ_WRITE_POOL_H
16 #include <stxxl/bits/mng/write_pool.h>
17 #include <stxxl/bits/mng/prefetch_pool.h>
20 __STXXL_BEGIN_NAMESPACE
27 template <
typename BlockType>
31 typedef BlockType block_type;
32 typedef typename block_type::bid_type bid_type;
33 typedef unsigned_type size_type;
47 explicit read_write_pool(size_type init_size_prefetch = 1, size_type init_size_write = 1) :
54 _STXXL_DEPRECATED(
read_write_pool(prefetch_pool_type & p_pool, write_pool_type & w_pool)) :
55 w_pool(&w_pool), p_pool(&p_pool), delete_pools(false)
60 std::swap(w_pool, obj.w_pool);
61 std::swap(p_pool, obj.p_pool);
62 std::swap(delete_pools, obj.delete_pools);
108 if (p_pool->invalidate(bid))
109 p_pool->
hint(bid, *w_pool);
118 return w_pool->
steal();
121 void add(block_type * & block)
137 return p_pool->
hint(bid, *w_pool);
140 bool invalidate(bid_type bid)
142 return p_pool->invalidate(bid);
153 return p_pool->
read(block, bid, *w_pool);
159 __STXXL_END_NAMESPACE
164 template <
class BlockType>
165 void swap(stxxl::read_write_pool<BlockType> & a,
166 stxxl::read_write_pool<BlockType> & b)
172 #endif // !STXXL_MNG_READ_WRITE_POOL_H