#include <fault_tolerant_reader.hpp>
Public Types | |
| using | CancelCallback = std::function<bool()> |
Public Member Functions | |
| FaultTolerantReader ()=default | |
| bool | open (const std::string &path, std::string &error) |
| void | close () |
| bool | is_open () const |
| uint64_t | size () const |
| uint32_t | logical_sector_size () const |
| const std::string & | path () const |
| void | set_config (const FaultTolerantReaderConfig &cfg) |
| void | set_cancel_callback (CancelCallback cb) |
| ReadResult | read_at (uint64_t offset, void *buffer, size_t size) |
| ReadResult | read_rescue (uint64_t offset, void *buffer, size_t size) |
| const BadBlockMap & | bad_block_map () const |
| BadBlockMap & | bad_block_map () |
Private Member Functions | |
| ReadResult | read_rescue_recursive (uint64_t offset, unsigned char *buffer, size_t size) |
Private Attributes | |
| DiskReader | reader_ |
| FaultTolerantReaderConfig | config_ |
| CancelCallback | cancel_cb_ |
| BadBlockMap | bad_map_ |
| std::mutex | mutex_ |
Definition at line 27 of file fault_tolerant_reader.hpp.
| using FaultTolerantReader::CancelCallback = std::function<bool()> |
Definition at line 29 of file fault_tolerant_reader.hpp.
|
default |
References bad_block_map(), close(), is_open(), logical_sector_size(), open(), path(), read_at(), read_rescue(), read_rescue_recursive(), set_cancel_callback(), set_config(), and size().
| BadBlockMap & FaultTolerantReader::bad_block_map | ( | ) |
| const BadBlockMap & FaultTolerantReader::bad_block_map | ( | ) | const |
Definition at line 63 of file fault_tolerant_reader.cpp.
References bad_map_.
Referenced by RescueImager::create_image(), and FaultTolerantReader().
| void FaultTolerantReader::close | ( | ) |
Definition at line 11 of file fault_tolerant_reader.cpp.
References bad_map_, DiskReader::close(), mutex_, and reader_.
Referenced by FaultTolerantReader().
| bool FaultTolerantReader::is_open | ( | ) | const |
Definition at line 17 of file fault_tolerant_reader.cpp.
References DiskReader::is_open(), and reader_.
Referenced by FaultTolerantReader().
| uint32_t FaultTolerantReader::logical_sector_size | ( | ) | const |
Definition at line 25 of file fault_tolerant_reader.cpp.
References DiskReader::logical_sector_size(), and reader_.
Referenced by FaultTolerantReader().
| bool FaultTolerantReader::open | ( | const std::string & | path, |
| std::string & | error ) |
Definition at line 7 of file fault_tolerant_reader.cpp.
References DiskReader::open_readonly(), path(), and reader_.
Referenced by RescueImager::create_image(), and FaultTolerantReader().
| const std::string & FaultTolerantReader::path | ( | ) | const |
Definition at line 29 of file fault_tolerant_reader.cpp.
References DiskReader::path(), and reader_.
Referenced by FaultTolerantReader(), and open().
| ReadResult FaultTolerantReader::read_at | ( | uint64_t | offset, |
| void * | buffer, | ||
| size_t | size ) |
Definition at line 41 of file fault_tolerant_reader.cpp.
References bad_map_, ReadResult::bytes_read, cancel_cb_, ReadResult::error, BadBlockMap::mark_readable(), mutex_, DiskReader::read_at(), reader_, size(), and ReadResult::success.
Referenced by FaultTolerantReader().
| ReadResult FaultTolerantReader::read_rescue | ( | uint64_t | offset, |
| void * | buffer, | ||
| size_t | size ) |
Definition at line 58 of file fault_tolerant_reader.cpp.
References mutex_, read_rescue_recursive(), and size().
Referenced by RescueImager::create_image(), and FaultTolerantReader().
|
private |
Definition at line 71 of file fault_tolerant_reader.cpp.
References bad_map_, ReadResult::bytes_read, cancel_cb_, config_, ReadResult::error, BadBlockMap::mark_bad(), BadBlockMap::mark_readable(), BadBlockMap::mark_slow(), FaultTolerantReaderConfig::mark_slow_ranges, FaultTolerantReaderConfig::max_retries, FaultTolerantReaderConfig::min_chunk_size, ReadResult::partial, DiskReader::read_at(), read_rescue_recursive(), reader_, size(), and ReadResult::success.
Referenced by FaultTolerantReader(), read_rescue(), and read_rescue_recursive().
| void FaultTolerantReader::set_cancel_callback | ( | CancelCallback | cb | ) |
Definition at line 37 of file fault_tolerant_reader.cpp.
References cancel_cb_.
Referenced by RescueImager::create_image(), and FaultTolerantReader().
| void FaultTolerantReader::set_config | ( | const FaultTolerantReaderConfig & | cfg | ) |
Definition at line 33 of file fault_tolerant_reader.cpp.
References config_.
Referenced by FaultTolerantReader().
| uint64_t FaultTolerantReader::size | ( | ) | const |
Definition at line 21 of file fault_tolerant_reader.cpp.
References reader_, and DiskReader::size().
Referenced by RescueImager::create_image(), FaultTolerantReader(), read_at(), read_rescue(), and read_rescue_recursive().
|
private |
Definition at line 56 of file fault_tolerant_reader.hpp.
Referenced by bad_block_map(), bad_block_map(), close(), read_at(), and read_rescue_recursive().
|
private |
Definition at line 55 of file fault_tolerant_reader.hpp.
Referenced by read_at(), read_rescue_recursive(), and set_cancel_callback().
|
private |
Definition at line 54 of file fault_tolerant_reader.hpp.
Referenced by read_rescue_recursive(), and set_config().
|
mutableprivate |
Definition at line 57 of file fault_tolerant_reader.hpp.
Referenced by close(), read_at(), and read_rescue().
|
private |
Definition at line 53 of file fault_tolerant_reader.hpp.
Referenced by close(), is_open(), logical_sector_size(), open(), path(), read_at(), read_rescue_recursive(), and size().