[thin_show_dups] variable_chunk_stream

This commit is contained in:
Joe Thornber
2015-09-03 13:02:29 +01:00
parent d44a817c60
commit 750ce0f47b
14 changed files with 709 additions and 104 deletions

View File

@@ -14,25 +14,36 @@ namespace thin_provisioning {
block_address block_size,
size_t cache_mem);
virtual block_address nr_chunks() const;
block_address nr_chunks() const;
virtual void rewind();
virtual bool advance(block_address count = 1ull);
virtual block_address index() const;
virtual chunk const &get() const;
virtual bool next(block_address count = 1ull);
virtual bool eof() const;
virtual chunk const &get();
virtual void put(chunk const &c);
private:
void load(block_address b);
struct chunk_wrapper {
chunk_wrapper(cache_stream &parent);
block_cache::auto_block block_;
chunk c_;
};
friend class chunk_wrapper;
block_address block_size_;
block_address nr_blocks_;
block_address cache_blocks_;
int fd_;
validator::ptr v_;
std::auto_ptr<block_cache> cache_;
block_address current_index_;
block_cache::auto_block current_block_;
chunk current_chunk_;
};
}