era_check, era_dump
This commit is contained in:
		
							
								
								
									
										47
									
								
								era/metadata.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								era/metadata.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#ifndef ERA_METADATA_H
 | 
			
		||||
#define ERA_METADATA_H
 | 
			
		||||
 | 
			
		||||
#include "base/endian_utils.h"
 | 
			
		||||
 | 
			
		||||
#include "persistent-data/block.h"
 | 
			
		||||
#include "persistent-data/data-structures/array.h"
 | 
			
		||||
#include "persistent-data/data-structures/bitset.h"
 | 
			
		||||
#include "persistent-data/space-maps/disk.h"
 | 
			
		||||
#include "persistent-data/transaction_manager.h"
 | 
			
		||||
 | 
			
		||||
#include "era/superblock.h"
 | 
			
		||||
#include "era/bloom_tree.h"
 | 
			
		||||
#include "era/era_array.h"
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
namespace era {
 | 
			
		||||
	class metadata {
 | 
			
		||||
	public:
 | 
			
		||||
		enum open_type {
 | 
			
		||||
			CREATE,
 | 
			
		||||
			OPEN
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		typedef block_manager<>::read_ref read_ref;
 | 
			
		||||
		typedef block_manager<>::write_ref write_ref;
 | 
			
		||||
		typedef boost::shared_ptr<metadata> ptr;
 | 
			
		||||
 | 
			
		||||
		metadata(block_manager<>::ptr bm, open_type ot);
 | 
			
		||||
		void commit(bool clean_shutdown = true);
 | 
			
		||||
 | 
			
		||||
		typedef persistent_data::transaction_manager tm;
 | 
			
		||||
		tm::ptr tm_;
 | 
			
		||||
		superblock sb_;
 | 
			
		||||
		checked_space_map::ptr metadata_sm_;
 | 
			
		||||
		bloom_tree::ptr bloom_tree_;
 | 
			
		||||
		era_array::ptr era_array_;
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
		void open_metadata(block_manager<>::ptr bm);
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Reference in New Issue
	
	Block a user