http://stxxl.sourceforge.net
<dementiev@mpi-sb.mpg.de>
<beckmann@cs.uni-frankfurt.de>
http://www.boost.org/LICENSE_1_0.txt
#include <iostream>
#include <stxxl/mng>
#include <stxxl/bits/mng/prefetch_pool.h>
#define BLOCK_SIZE (1024 * 512)
struct MyType
{
int integer;
char chars[5];
};
typedef stxxl::typed_block<BLOCK_SIZE, MyType> block_type;
template class stxxl::prefetch_pool<block_type>;
int main()
{
stxxl::prefetch_pool<block_type> pool(2);
pool.resize(10);
pool.resize(5);
block_type* blk = new block_type;
(*blk)[0].integer = 42;
block_type::bid_type bids[2];
stxxl::block_manager::get_instance()->new_blocks(stxxl::single_disk(), bids, bids + 2);
blk->write(bids[0])->wait();
blk->write(bids[1])->wait();
pool.hint(bids[0]);
pool.read(blk, bids[0])->wait();
pool.read(blk, bids[1])->wait();
delete blk;
}