[cache] a lot of format 2 changes
This commit is contained in:
		| @@ -3,6 +3,7 @@ | ||||
| #include "persistent-data/space-maps/core.h" | ||||
|  | ||||
| using namespace caching; | ||||
| namespace pd = persistent_data; | ||||
|  | ||||
| //---------------------------------------------------------------- | ||||
|  | ||||
| @@ -30,15 +31,11 @@ namespace { | ||||
|  | ||||
| //---------------------------------------------------------------- | ||||
|  | ||||
| metadata::metadata(block_manager<>::ptr bm, open_type ot) | ||||
| metadata::metadata(block_manager<>::ptr bm, open_type ot, unsigned metadata_version) | ||||
| { | ||||
| 	switch (ot) { | ||||
| 	case CREATE: | ||||
| 		create_metadata(bm); | ||||
| 		break; | ||||
|  | ||||
| 	case OPEN: | ||||
| 		open_metadata(bm); | ||||
| 		create_metadata(bm, metadata_version); | ||||
| 		break; | ||||
|  | ||||
| 	default: | ||||
| @@ -46,6 +43,11 @@ metadata::metadata(block_manager<>::ptr bm, open_type ot) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| metadata::metadata(block_manager<>::ptr bm) | ||||
| { | ||||
| 	open_metadata(bm); | ||||
| } | ||||
|  | ||||
| void | ||||
| metadata::commit(bool clean_shutdown) | ||||
| { | ||||
| @@ -65,7 +67,7 @@ metadata::setup_hint_array(size_t width) | ||||
| } | ||||
|  | ||||
| void | ||||
| metadata::create_metadata(block_manager<>::ptr bm) | ||||
| metadata::create_metadata(block_manager<>::ptr bm, unsigned metadata_version) | ||||
| { | ||||
| 	tm_ = open_tm(bm); | ||||
|  | ||||
| @@ -79,7 +81,10 @@ metadata::create_metadata(block_manager<>::ptr bm) | ||||
| 	// We can't instantiate the hint array yet, since we don't know the | ||||
| 	// hint width. | ||||
|  | ||||
| 	discard_bits_ = persistent_data::bitset::ptr(new persistent_data::bitset(*tm_)); | ||||
| 	discard_bits_ = pd::bitset::ptr(new pd::bitset(*tm_)); | ||||
|  | ||||
| 	if (metadata_version >= 2) | ||||
| 		dirty_bits_ = pd::bitset::ptr(new pd::bitset(*tm_)); | ||||
| } | ||||
|  | ||||
| void | ||||
| @@ -100,8 +105,12 @@ metadata::open_metadata(block_manager<>::ptr bm) | ||||
| 				       sb_.hint_root, sb_.cache_blocks)); | ||||
|  | ||||
| 	if (sb_.discard_root) | ||||
| 		discard_bits_ = persistent_data::bitset::ptr( | ||||
| 			new persistent_data::bitset(*tm_, sb_.discard_root, sb_.discard_nr_blocks)); | ||||
| 		discard_bits_ = pd::bitset::ptr( | ||||
| 			new pd::bitset(*tm_, sb_.discard_root, sb_.discard_nr_blocks)); | ||||
|  | ||||
| 	if (sb_.version >= 2) | ||||
| 		dirty_bits_ = pd::bitset::ptr( | ||||
| 			new pd::bitset(*tm_, *sb_.dirty_root, sb_.cache_blocks)); | ||||
| } | ||||
|  | ||||
| void | ||||
|   | ||||
		Reference in New Issue
	
	Block a user