[caching/mapping_array] add damage visitor
This commit is contained in:
		| @@ -26,10 +26,37 @@ namespace caching { | ||||
| 			static void pack(value_type const &value, disk_type &disk); | ||||
| 		}; | ||||
|  | ||||
| 		// FIXME: damage visitor stuff | ||||
| 		class damage_visitor; | ||||
|  | ||||
| 		struct damage { | ||||
| 			virtual ~damage() {} | ||||
| 			virtual void visit(damage_visitor &v) const = 0; | ||||
| 		}; | ||||
|  | ||||
| 		struct missing_mappings : public damage { | ||||
| 			missing_mappings(run<uint32_t> const &keys, std::string const &desc); | ||||
| 			virtual void visit(damage_visitor &v) const; | ||||
|  | ||||
| 			run<uint32_t> keys_; | ||||
| 			std::string desc_; | ||||
| 		}; | ||||
|  | ||||
| 		class damage_visitor { | ||||
| 		public: | ||||
| 			virtual ~damage_visitor() {} | ||||
|  | ||||
| 			virtual void visit(mapping_array_detail::damage const &d) { | ||||
| 				d.visit(*this); | ||||
| 			} | ||||
|  | ||||
| 			virtual void visit(missing_mappings const &d) = 0; | ||||
| 		}; | ||||
| 	} | ||||
|  | ||||
| 	typedef persistent_data::array<mapping_array_detail::mapping_traits> mapping_array; | ||||
|  | ||||
| 	void check_mapping_array(mapping_array const &array, | ||||
| 				 mapping_array_detail::damage_visitor &visitor); | ||||
| } | ||||
|  | ||||
| //---------------------------------------------------------------- | ||||
|   | ||||
		Reference in New Issue
	
	Block a user