Put error_state into into it's own file.
This commit is contained in:
		
							
								
								
									
										17
									
								
								Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								Makefile.in
									
									
									
									
									
								
							@@ -29,7 +29,11 @@ PROGRAMS=\
 | 
			
		||||
 | 
			
		||||
all: $(PROGRAMS)
 | 
			
		||||
 | 
			
		||||
PDATA_SOURCE=\
 | 
			
		||||
SOURCE=\
 | 
			
		||||
	base/error_state.cc \
 | 
			
		||||
	\
 | 
			
		||||
	caching/superblock.cc \
 | 
			
		||||
	\
 | 
			
		||||
	persistent-data/checksum.cc \
 | 
			
		||||
	persistent-data/endian_utils.cc \
 | 
			
		||||
	persistent-data/error_set.cc \
 | 
			
		||||
@@ -42,13 +46,7 @@ PDATA_SOURCE=\
 | 
			
		||||
	persistent-data/space_map.cc \
 | 
			
		||||
	persistent-data/space-maps/disk.cc \
 | 
			
		||||
	persistent-data/space-maps/recursive.cc \
 | 
			
		||||
	persistent-data/space-maps/careful_alloc.cc
 | 
			
		||||
#PDATA_OBJECTS=$(subst .cc,.o,$(PDATA_SOURCE))
 | 
			
		||||
 | 
			
		||||
SOURCE=\
 | 
			
		||||
	$(PDATA_SOURCE) \
 | 
			
		||||
	\
 | 
			
		||||
	caching/superblock.cc \
 | 
			
		||||
	persistent-data/space-maps/careful_alloc.cc \
 | 
			
		||||
	\
 | 
			
		||||
	thin-provisioning/device_tree.cc \
 | 
			
		||||
	thin-provisioning/file_utils.cc \
 | 
			
		||||
@@ -66,7 +64,7 @@ SOURCE=\
 | 
			
		||||
PDATA_OBJECTS=$(subst .cc,.o,$(SOURCE))
 | 
			
		||||
 | 
			
		||||
CXX_PROGRAM_SOURCE=\
 | 
			
		||||
	caching/check.cc \
 | 
			
		||||
	caching/cache_check.cc \
 | 
			
		||||
	\
 | 
			
		||||
	thin-provisioning/thin_check.cc \
 | 
			
		||||
	thin-provisioning/thin_dump.cc \
 | 
			
		||||
@@ -140,6 +138,7 @@ THIN_DUMP_SOURCE=$(SOURCE)
 | 
			
		||||
THIN_REPAIR_SOURCE=$(SOURCE)
 | 
			
		||||
THIN_RESTORE_SOURCE=$(SOURCE)
 | 
			
		||||
THIN_CHECK_SOURCE=\
 | 
			
		||||
	base/error_state.cc \
 | 
			
		||||
	persistent-data/checksum.cc \
 | 
			
		||||
	persistent-data/endian_utils.cc \
 | 
			
		||||
	persistent-data/error_set.cc \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								base/error_state.cc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								base/error_state.cc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
#include "base/error_state.h"
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
base::error_state
 | 
			
		||||
base::combine_errors(error_state lhs, error_state rhs) {
 | 
			
		||||
	switch (lhs) {
 | 
			
		||||
	case NO_ERROR:
 | 
			
		||||
		return rhs;
 | 
			
		||||
 | 
			
		||||
	case NON_FATAL:
 | 
			
		||||
		return (rhs == FATAL) ? FATAL : lhs;
 | 
			
		||||
 | 
			
		||||
	default:
 | 
			
		||||
		return lhs;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										18
									
								
								base/error_state.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								base/error_state.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
#ifndef BASE_ERROR_STATE_H
 | 
			
		||||
#define BASE_ERROR_STATE_H
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
namespace base {
 | 
			
		||||
	enum error_state {
 | 
			
		||||
		NO_ERROR,
 | 
			
		||||
		NON_FATAL,	// eg, lost blocks
 | 
			
		||||
		FATAL		// needs fixing before pool can be activated
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	error_state combine_errors(error_state lhs, error_state rhs);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -22,6 +22,7 @@
 | 
			
		||||
 | 
			
		||||
#include "version.h"
 | 
			
		||||
 | 
			
		||||
#include "base/error_state.h"
 | 
			
		||||
#include "base/nested_output.h"
 | 
			
		||||
#include "persistent-data/space-maps/core.h"
 | 
			
		||||
#include "thin-provisioning/device_tree.h"
 | 
			
		||||
@@ -29,33 +30,13 @@
 | 
			
		||||
#include "thin-provisioning/mapping_tree.h"
 | 
			
		||||
#include "thin-provisioning/superblock.h"
 | 
			
		||||
 | 
			
		||||
using namespace base;
 | 
			
		||||
using namespace std;
 | 
			
		||||
using namespace thin_provisioning;
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
namespace {
 | 
			
		||||
 | 
			
		||||
	enum error_state {
 | 
			
		||||
		NO_ERROR,
 | 
			
		||||
		NON_FATAL,	// eg, lost blocks
 | 
			
		||||
		FATAL		// needs fixing before pool can be activated
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	error_state
 | 
			
		||||
	combine_errors(error_state lhs, error_state rhs) {
 | 
			
		||||
		switch (lhs) {
 | 
			
		||||
		case NO_ERROR:
 | 
			
		||||
			return rhs;
 | 
			
		||||
 | 
			
		||||
		case NON_FATAL:
 | 
			
		||||
			return (rhs == FATAL) ? FATAL : lhs;
 | 
			
		||||
 | 
			
		||||
		default:
 | 
			
		||||
			return lhs;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//--------------------------------
 | 
			
		||||
 | 
			
		||||
	block_manager<>::ptr
 | 
			
		||||
@@ -91,7 +72,7 @@ namespace {
 | 
			
		||||
			err_ = combine_errors(err_, FATAL);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		error_state get_error() const {
 | 
			
		||||
		base::error_state get_error() const {
 | 
			
		||||
			return err_;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user