ewmscp  ..
outputHandlerDaosFs.h
Go to the documentation of this file.
1 #ifndef __outputHandlerDaosFs_h__
2 #define __outputHandlerDaosFs_h__
3 #include "outputHandler.h"
4 #include "daosFsCommon.h"
5 #include <sys/stat.h>
6 #include <sys/types.h>
7 
8 namespace outputHandler {
9 
10  class daosFs: public base, virtual public daosFsCommon {
12  public:
13  class writerDaosFs: public writer, virtual public daosFsIoCommon {
14  protected:
15  struct stat writeInitialStat;
16  std::unique_ptr<ioHandle::attrDataType> attrData;
17  std::unique_ptr<acl::list> aclData;
18  public:
19  writerDaosFs(const std::string& aPath,
20  bool mightAppend,
21  size_t sourceSize,
22  size_t readBlockSize,
24  bool noWrite,
25  std::unique_ptr<ioHandle::attrDataType> aAttrData,
26  std::unique_ptr<acl::list> aAclData,
27  daosFs& aHandler);
28  writerDaosFs(std::string& aPath,
29  bool noWrite,
30  std::unique_ptr<ioHandle::attrDataType> aAttrData,
31  std::unique_ptr<acl::list> aAclData,
32  daosFs& aHandler);
33  void closeAndRemoveBadCopy() override;
34  ~writerDaosFs() noexcept(false) override;
35  void seek(size_t position) override;
36  bool parallelizable() const override;
37  size_t getSize() const override;
38  void writeBlock(const block& b) override;
39  void writeBlockP(const block& b) override;
40  void doAttributePreservations(const genericStat& readInitialStat) override;
41  void sync() override;
42  };
43  daosFs() = default;
44  ~daosFs() override = default;
45  std::unique_ptr<writer> newWriter(const std::string& path,
46  bool mightAppend,
47  size_t sourceSize,
48  size_t readBlockSize,
49  copyRequest::stateType &state,
50  bool noWrite,
51  std::unique_ptr<ioHandle::attrDataType> attrData,
52  std::unique_ptr<acl::list> aclData) override;
53  std::unique_ptr<writer> newTmpWriter(std::string& path,
54  size_t sourceSize,
55  bool noWrite,
56  std::unique_ptr<ioHandle::attrDataType> attrData,
57  std::unique_ptr<acl::list> aclData) override;
58  void ensureParentDirs(const std::string& path,
59  const std::string& srcPath,
60  inputHandler::base* InputHandler) override;
61  void remove(const std::string& path, copyRequest::stateType& state) override;
62  bool renameSimple(const std::string& fromPath,
63  const std::string& toPath) override;
64  base::renameRetvalType rename(const std::string& fromPath,
65  const std::unique_ptr<const genericStat>& readInitialStat,
66  const std::string& toPath,
67  copyRequest::stateType& state) override;
68  void createSymlink(const std::vector<char>& target,
69  const std::string& path,
70  uid_t uid, gid_t gid) override;
71  void doAttributePreservations(const std::string& path,
72  const genericStat& stat) override;
73  size_t getMaxNameLength(const std::string& dirPath) override;
74  };
75 }; // end namespace outputHandler
76 
77 
78 #endif
outputHandler::daosFs::writerDaosFs::seek
void seek(size_t position) override
Definition: outputHandlerDaosFs.cpp:331
outputHandler::daosFs::writerDaosFs::closeAndRemoveBadCopy
void closeAndRemoveBadCopy() override
Definition: outputHandlerDaosFs.cpp:292
inputHandler
Definition: inputHandler.h:29
outputHandler::daosFs::writerDaosFs::writeInitialStat
struct stat writeInitialStat
Definition: outputHandlerDaosFs.h:15
genericStat
generic stat abstraction class Used to abstract the variants of the stat structure.
Definition: genericStat.h:12
outputHandler::daosFs::writerDaosFs::aclData
std::unique_ptr< acl::list > aclData
Definition: outputHandlerDaosFs.h:17
outputHandler::daosFs::factory
static factoryTemplate< daosFs > factory
Definition: outputHandlerDaosFs.h:11
outputHandler::daosFs::writerDaosFs::doAttributePreservations
void doAttributePreservations(const genericStat &readInitialStat) override
Definition: outputHandlerDaosFs.cpp:395
outputHandler::daosFs::writerDaosFs::~writerDaosFs
~writerDaosFs() noexcept(false) override
Definition: outputHandlerDaosFs.cpp:308
outputHandler::daosFs::newWriter
std::unique_ptr< writer > newWriter(const std::string &path, bool mightAppend, size_t sourceSize, size_t readBlockSize, copyRequest::stateType &state, bool noWrite, std::unique_ptr< ioHandle::attrDataType > attrData, std::unique_ptr< acl::list > aclData) override
Definition: outputHandlerDaosFs.cpp:20
outputHandler::daosFs::getMaxNameLength
size_t getMaxNameLength(const std::string &dirPath) override
Definition: outputHandlerDaosFs.cpp:455
outputHandler
Definition: ioHandle.h:9
gid
options::single< int > gid
outputHandler::daosFs::rename
base::renameRetvalType rename(const std::string &fromPath, const std::unique_ptr< const genericStat > &readInitialStat, const std::string &toPath, copyRequest::stateType &state) override
Definition: outputHandlerDaosFs.cpp:151
outputHandler::daosFs::ensureParentDirs
void ensureParentDirs(const std::string &path, const std::string &srcPath, inputHandler::base *InputHandler) override
Definition: outputHandlerDaosFs.cpp:53
copyRequest::stateType
Definition: copyRequestTypes.h:66
outputHandler::daosFs::newTmpWriter
std::unique_ptr< writer > newTmpWriter(std::string &path, size_t sourceSize, bool noWrite, std::unique_ptr< ioHandle::attrDataType > attrData, std::unique_ptr< acl::list > aclData) override
Definition: outputHandlerDaosFs.cpp:36
daosFsCommon
Definition: daosFsCommon.h:11
outputHandler::daosFs::writerDaosFs::parallelizable
bool parallelizable() const override
tell if this handler is capable of parallel IO. Unsually not the case
Definition: outputHandlerDaosFs.cpp:336
daosFsIoCommon::attrDataType
Definition: daosFsCommon.h:56
outputHandler::daosFs::writerDaosFs::writerDaosFs
writerDaosFs(const std::string &aPath, bool mightAppend, size_t sourceSize, size_t readBlockSize, copyRequest::stateType &state, bool noWrite, std::unique_ptr< ioHandle::attrDataType > aAttrData, std::unique_ptr< acl::list > aAclData, daosFs &aHandler)
Definition: outputHandlerDaosFs.cpp:229
outputHandler::base
Definition: outputHandler.h:17
outputHandler::base::renameRetvalType
renameRetvalType
Definition: outputHandler.h:106
block
data block, used to hold the data that are being copied (or checksummed).
Definition: block.h:7
outputHandler::daosFs::writerDaosFs::sync
void sync() override
Definition: outputHandlerDaosFs.cpp:462
outputHandler::daosFs::writerDaosFs::writeBlock
void writeBlock(const block &b) override
Definition: outputHandlerDaosFs.cpp:343
outputHandler::daosFs::renameSimple
bool renameSimple(const std::string &fromPath, const std::string &toPath) override
Definition: outputHandlerDaosFs.cpp:139
outputHandler::daosFs::writerDaosFs
Definition: outputHandlerDaosFs.h:13
uid
options::single< int > uid
outputHandler::daosFs::createSymlink
void createSymlink(const std::vector< char > &target, const std::string &path, uid_t uid, gid_t gid) override
Definition: outputHandlerDaosFs.cpp:215
daosFsIoCommon
base class for daosFs reader and writer class with the common stuff like fd, path and xattr handling
Definition: daosFsCommon.h:50
outputHandler::base::factoryTemplate
template for factoryClass-derived factories
Definition: outputHandler.h:39
outputHandler::daosFs::writerDaosFs::getSize
size_t getSize() const override
Definition: outputHandlerDaosFs.cpp:339
daosFsCommon.h
ioHandle
class as base for inputHandler::base::reader and outputHandler::base::writer containing the common pa...
Definition: ioHandle.h:15
outputHandler::daosFs::writerDaosFs::writeBlockP
void writeBlockP(const block &b) override
Definition: outputHandlerDaosFs.cpp:379
daosFsIoCommon::path
const std::string & path
Definition: daosFsCommon.h:52
copyRequest
Definition: checksumTestRequestProvider.cpp:25
outputHandler::daosFs::writerDaosFs::attrData
std::unique_ptr< ioHandle::attrDataType > attrData
Definition: outputHandlerDaosFs.h:16
outputHandler.h
outputHandler::daosFs
Definition: outputHandlerDaosFs.h:10
acl
Definition: acl.cpp:10
outputHandler::daosFs::remove
void remove(const std::string &path, copyRequest::stateType &state) override
Definition: outputHandlerDaosFs.cpp:95