[thin_metadata_pack/unpack] Add version field to header.
This commit is contained in:
		@@ -41,6 +41,7 @@ using boost::optional;
 | 
				
			|||||||
namespace {
 | 
					namespace {
 | 
				
			||||||
	using namespace std;
 | 
						using namespace std;
 | 
				
			||||||
	constexpr uint64_t MAGIC = 0xa537a0aa6309ef77;
 | 
						constexpr uint64_t MAGIC = 0xa537a0aa6309ef77;
 | 
				
			||||||
 | 
						constexpr uint64_t PACK_VERSION = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uint32_t const SUPERBLOCK_CSUM_SEED = 160774;
 | 
						uint32_t const SUPERBLOCK_CSUM_SEED = 160774;
 | 
				
			||||||
	uint32_t const BITMAP_CSUM_XOR = 240779;
 | 
						uint32_t const BITMAP_CSUM_XOR = 240779;
 | 
				
			||||||
@@ -114,6 +115,7 @@ namespace {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		std::ofstream out_file(*f.output_file_, ios_base::binary);
 | 
							std::ofstream out_file(*f.output_file_, ios_base::binary);
 | 
				
			||||||
		write_u64(out_file, MAGIC);
 | 
							write_u64(out_file, MAGIC);
 | 
				
			||||||
 | 
							write_u64(out_file, PACK_VERSION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		boost::iostreams::filtering_ostreambuf out_buf;
 | 
							boost::iostreams::filtering_ostreambuf out_buf;
 | 
				
			||||||
		out_buf.push(zlib_compressor());
 | 
							out_buf.push(zlib_compressor());
 | 
				
			||||||
@@ -154,6 +156,9 @@ namespace {
 | 
				
			|||||||
		if (read_u64(in_file) != MAGIC)
 | 
							if (read_u64(in_file) != MAGIC)
 | 
				
			||||||
			throw runtime_error("Not a pack file.");
 | 
								throw runtime_error("Not a pack file.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (read_u64(in_file) != PACK_VERSION)
 | 
				
			||||||
 | 
								throw runtime_error("unknown pack file format version");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		filtering_istreambuf in_buf;
 | 
							filtering_istreambuf in_buf;
 | 
				
			||||||
		in_buf.push(zlib_decompressor());
 | 
							in_buf.push(zlib_decompressor());
 | 
				
			||||||
		in_buf.push(in_file);
 | 
							in_buf.push(in_file);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user