ewmscp
..
|
#include <inputHandlerGpfs.h>
Public Member Functions | |
readerGpfs (const std::string &aPath, copyRequest::stateType &state, const genericStat &inititalStat) | |
~readerGpfs () override | |
bool | readBlock (block &b) override |
read one block from the file More... | |
void | readBlockP (block &b, size_t bytesToRead, off_t offset) override |
read one block from the file, starting at offset. More... | |
![]() | |
readerPosixFile (const std::string &aPath, copyRequest::stateType &state, const genericStat &inititalStat) | |
~readerPosixFile () override | |
bool | parallelizable () const override |
tell if this handler is capable of parallel IO. Unsually not the case More... | |
bool | setupSparseRegions (const std::string &sparseHandling) override |
create a region list which maps the holes in the source file More... | |
void | seek (size_t pos) override |
like the standard seek, to be used only when appending new data to a file More... | |
bool | readBlock (block &b) override |
read one block from the file More... | |
void | readBlockP (block &b, size_t bytesToRead, off_t offset) override |
read one block from the file, starting at offset. More... | |
void | checkUnchangedness () override |
check if the file is unchanged by comparing cuttent stat to initial stat More... | |
![]() | |
virtual | ~reader () noexcept(false)=default |
![]() | |
ioHandle () | |
virtual | ~ioHandle () noexcept(false) |
virtual size_t | getBlockSize () const |
virtual void | setBlockSize (size_t newSize) |
![]() | |
posixFileIoCommon (const std::string &aPath) | |
void | setXattr (const std::string &name, const std::string &value) override |
std::string | getXattr (const std::string &name) override |
get one extended attribute value More... | |
void | removeXattr (const std::string &name) override |
std::unique_ptr< const genericStat > | getStat () override |
std::unique_ptr< ioHandle::attrDataType > | getAttrData (const outputHandler::base *aOutputHandler) override |
get attributes in the optimal way for setting with aOutputHandler More... | |
![]() | |
gpfsIoCommon (const std::string &aPath) | |
~gpfsIoCommon () override=default | |
std::unique_ptr< ioHandle::attrDataType > | getAttrData (const outputHandler::base *aOutputHandler) override |
get attributes in the optimal way for setting with aOutputHandler More... | |
std::unique_ptr< acl::list > | getAclData () override |
get acls More... | |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< acl::list > | aclFromGpfs (const gpfs_acl_handler &acl, const std::string &aPath) |
![]() | |
reader (const genericStat &inititalStat) | |
![]() | |
unwindCheck ()=default | |
~unwindCheck ()=default | |
bool | isUnwinding () const |
![]() | |
ioHandle () | |
virtual | ~ioHandle () noexcept(false) |
virtual size_t | getBlockSize () const |
virtual void | setBlockSize (size_t newSize) |
![]() | |
void | releaseUsedBlocks (size_t aBlockSize) |
void | handleParallelUsedBlocks (size_t aBlockSize, off_t offset) |
![]() | |
std::deque< regionType > | regions |
![]() | |
const genericStat & | readInitialStat |
stat at beginning, needed for unchngedness check More... | |
std::remove_const< decltype(readInitialStat.size)>::type | totalBytesRead = 0 |
number of bytes read so far, needed for check on growing files More... | |
![]() | |
size_t | blockSize |
in bytes, block size to be used when reading or writing More... | |
![]() | |
const std::string & | path |
int | fd = -1 |
![]() | |
off_t | leastRecentlyAccessedBlock |
off_t | leastRecentlyReleasedBlock |
std::bitset< 64 > | usedBlockMap |
std::bitset< 64 > | nextUsedBlockMap |
std::mutex | blockBookkeepingMutex |
Definition at line 17 of file inputHandlerGpfs.h.
inputHandler::Gpfs::readerGpfs::readerGpfs | ( | const std::string & | aPath, |
copyRequest::stateType & | state, | ||
const genericStat & | inititalStat | ||
) |
Definition at line 27 of file inputHandlerGpfs.cpp.
References gpfs_fcntl_handler::buffer, gpfs_fcntl_handler::call(), posixFileIoCommon::fd, posixFileIoCommon::path, genericStat::size, timerInst, and inputHandler::useRange.
|
override |
Definition at line 43 of file inputHandlerGpfs.cpp.
References gpfs_fcntl_handler::buffer, gpfs_fcntl_handler::call(), inputHandler::doClearCache, and timerInst.
|
overridevirtual |
read one block from the file
std::system_error | if read fails |
delayAdvisingError | if file changes during reading |
Implements inputHandler::base::reader.
Definition at line 58 of file inputHandlerGpfs.cpp.
References inputHandler::freeRange, block::max_size(), block::offset(), and inputHandler::posixFile::readerPosixFile::readBlock().
|
overridevirtual |
read one block from the file, starting at offset.
meant for pparallel reading, often not implemented only for non-sparse files
std::system_error | if read fails |
delayAdvisingError | if file changes during reading |
std::logic_error | if attempted on sparse file |
Reimplemented from inputHandler::base::reader.
Definition at line 67 of file inputHandlerGpfs.cpp.
References inputHandler::freeRange, block::max_size(), and inputHandler::posixFile::readerPosixFile::readBlockP().