ewmscp  ..
inputHandlerDaosFs.h
Go to the documentation of this file.
1 #ifndef __inputHandlerDaosFs_h__
2 #define __inputHandlerDaosFs_h__
3 #include "inputHandler.h"
4 #include "daosFsCommon.h"
5 #include <Options.h>
6 #include <deque>
7 #include <dirent.h>
8 #include <string>
9 #include <sys/stat.h>
10 #include <sys/types.h>
11 
12 
13 namespace inputHandler {
14 
15  class daosFs: public base, virtual public daosFsCommon {
17  public:
18 
19  class readerDaosFs: public reader, virtual public daosFsIoCommon {
20  public:
21  readerDaosFs(const std::string& aPath,
23  const genericStat& inititalStat,
24  daosFsCommon& aHandler);
25  ~readerDaosFs() override;
26  bool parallelizable() const override;
27  bool readBlock(block &b) override;
28  void readBlockP(block& b, size_t bytesToRead, off_t offset) override;
29  void checkUnchangedness() override;
30  };
31  daosFs();
32  ~daosFs() override = default;
33  std::unique_ptr<reader> newReader(const std::string& aPath,
35  const genericStat& inititalStat) override;
36  bool readLinkTarget(const std::string& path,
37  std::vector<char>& target) override;
38 
39 
40  class DaosFsDirectory: public Directory {
42  dfs_obj_t *dir;
43  daos_anchor_t anchor;
44  public:
45  DaosFsDirectory(daosFs& aHandler, const std::string& path);
46  ~DaosFsDirectory() noexcept(false) override;
47  std::unique_ptr<Entry> getNextEntry(bool ignoreMissing) override;
48  };
49  std::unique_ptr<Directory> getDirectory(const std::string& path) override;
50 
51  };
52 
53 } // end namespace inputHandler
54 #endif
inputHandler::daosFs::readerDaosFs
Definition: inputHandlerDaosFs.h:19
inputHandler::daosFs::readerDaosFs::parallelizable
bool parallelizable() const override
tell if this handler is capable of parallel IO. Unsually not the case
Definition: inputHandlerDaosFs.cpp:91
inputHandler
Definition: inputHandler.h:29
inputHandler::daosFs::newReader
std::unique_ptr< reader > newReader(const std::string &aPath, copyRequest::stateType &state, const genericStat &inititalStat) override
get a reader for the file at path
Definition: inputHandlerDaosFs.cpp:21
genericStat
generic stat abstraction class Used to abstract the variants of the stat structure.
Definition: genericStat.h:12
inputHandler::daosFs::DaosFsDirectory::~DaosFsDirectory
~DaosFsDirectory() noexcept(false) override
Definition: inputHandlerDaosFs.cpp:197
inputHandler::base::factoryTemplate
Definition: inputHandler.h:55
copyRequest::stateType
Definition: copyRequestTypes.h:66
Options.h
daosFsCommon
Definition: daosFsCommon.h:11
inputHandler::daosFs
Definition: inputHandlerDaosFs.h:15
inputHandler::daosFs::DaosFsDirectory::anchor
daos_anchor_t anchor
Definition: inputHandlerDaosFs.h:43
inputHandler::daosFs::daosFs
daosFs()
Definition: inputHandlerDaosFs.cpp:19
inputHandler::daosFs::~daosFs
~daosFs() override=default
block
data block, used to hold the data that are being copied (or checksummed).
Definition: block.h:7
inputHandler::daosFs::factory
static factoryTemplate< daosFs > factory
Definition: inputHandlerDaosFs.h:16
inputHandler::daosFs::DaosFsDirectory::DaosFsDirectory
DaosFsDirectory(daosFs &aHandler, const std::string &path)
Definition: inputHandlerDaosFs.cpp:192
inputHandler::daosFs::readerDaosFs::~readerDaosFs
~readerDaosFs() override
Definition: inputHandlerDaosFs.cpp:70
inputHandler::daosFs::readLinkTarget
bool readLinkTarget(const std::string &path, std::vector< char > &target) override
read link target from a symlink
Definition: inputHandlerDaosFs.cpp:31
inputHandler::daosFs::DaosFsDirectory
Definition: inputHandlerDaosFs.h:40
inputHandler::daosFs::DaosFsDirectory::getNextEntry
std::unique_ptr< Entry > getNextEntry(bool ignoreMissing) override
Definition: inputHandlerDaosFs.cpp:209
inputHandler::base
class for handling input This is the (abstract) base class for handling input, both reading a file vi...
Definition: inputHandler.h:35
inputHandler::daosFs::readerDaosFs::checkUnchangedness
void checkUnchangedness() override
Definition: inputHandlerDaosFs.cpp:171
inputHandler::daosFs::readerDaosFs::readerDaosFs
readerDaosFs(const std::string &aPath, copyRequest::stateType &state, const genericStat &inititalStat, daosFsCommon &aHandler)
Definition: inputHandlerDaosFs.cpp:48
daosFsIoCommon
base class for daosFs reader and writer class with the common stuff like fd, path and xattr handling
Definition: daosFsCommon.h:50
inputHandler::daosFs::readerDaosFs::readBlockP
void readBlockP(block &b, size_t bytesToRead, off_t offset) override
Definition: inputHandlerDaosFs.cpp:140
inputHandler::daosFs::getDirectory
std::unique_ptr< Directory > getDirectory(const std::string &path) override
Definition: inputHandlerDaosFs.cpp:235
daosFsCommon.h
inputHandler::daosFs::DaosFsDirectory::handler
daosFs & handler
Definition: inputHandlerDaosFs.h:41
inputHandler::daosFs::DaosFsDirectory::dir
dfs_obj_t * dir
Definition: inputHandlerDaosFs.h:42
inputHandler.h
inputHandler::daosFs::readerDaosFs::readBlock
bool readBlock(block &b) override
Definition: inputHandlerDaosFs.cpp:94