ewmscp  ..
outputHandlerDcap.h
Go to the documentation of this file.
1 #ifndef __outputHandlerDcap_h__
2 #define __outputHandlerDcap_h__
3 #include "dcapCommon.h"
4 #include "outputHandler.h"
5 #include <OptionsChrono.h>
6 namespace outputHandler {
7 
8  class dcap: public base, virtual public dcapCommon {
9  static factoryTemplate<dcap> factory;
10  public:
11  static const std::string parPrefix;
12  class writerDcap: public writer, virtual public dcapIoCommon {
13  protected:
16  public:
17  writerDcap(const std::string& aPath,
18  bool mightAppend,
19  size_t sourceSize,
20  size_t readBlockSize,
22  bool noWrite,
23  std::unique_ptr<acl::list> aAclData);
24  ~writerDcap() noexcept(false) override;
25  void closeAndRemoveBadCopy() override;
26  void writeBlock(const block& b) override;
27  void doAttributePreservations(const genericStat& readInitialStat) override;
28  void sync() override;
29  };
30  dcap();
31  ~dcap() override = default;
32  std::unique_ptr<writer> newWriter(const std::string& path,
33  bool mightAppend,
34  size_t sourceSize,
35  size_t readBlockSize,
36  copyRequest::stateType &state,
37  bool noWrite,
38  std::unique_ptr<ioHandle::attrDataType>,
39  std::unique_ptr<acl::list> aclData) override;
40  void ensureParentDirs(const std::string& path,
41  const std::string& srcPath,
42  inputHandler::base* InputHandler) override;
43  void remove(const std::string& path, copyRequest::stateType& state) override;
44  bool renameSimple(const std::string& fromPath,
45  const std::string& toPath) override;
46  base::renameRetvalType rename(const std::string& fromPath,
47  const std::unique_ptr<const genericStat>& readInitialStat,
48  const std::string& toPath,
49  copyRequest::stateType& state) override;
50 
51  void doAttributePreservations(const std::string& path,
52  const genericStat& stat) override;
53 
54  protected:
55  static void setAclData(const acl::list& aclData, bool isDir = false);
56  };
57 }; // end namespace outputHandler
58 
59 
60 #endif
outputHandler::dcap::parPrefix
static const std::string parPrefix
Definition: outputHandlerDcap.h:11
ioHandle::attrDataType
class for asttribute data, abstract base to be implemented for specific handlers
Definition: ioHandle.h:22
outputHandler::dcap::rename
base::renameRetvalType rename(const std::string &fromPath, const std::unique_ptr< const genericStat > &readInitialStat, const std::string &toPath, copyRequest::stateType &state) override
Definition: outputHandlerDcap.cpp:136
dcapIoCommon
Definition: dcapCommon.h:74
inputHandler
Definition: inputHandler.h:29
outputHandler::dcap::renameSimple
bool renameSimple(const std::string &fromPath, const std::string &toPath) override
Definition: outputHandlerDcap.cpp:124
options::single< bool >
class specialisation for options of type bool
Definition: Options.h:595
genericStat
generic stat abstraction class Used to abstract the variants of the stat structure.
Definition: genericStat.h:12
outputHandler::dcap::factory
static factoryTemplate< dcap > factory
Definition: outputHandlerDcap.h:9
outputHandler::dcap::writerDcap::noChecksum
static options::single< bool > noChecksum
Definition: outputHandlerDcap.h:15
outputHandler::dcap::writerDcap::sync
void sync() override
Definition: outputHandlerDcap.cpp:373
outputHandler::dcap
Definition: outputHandlerDcap.h:8
outputHandler::dcap::setAclData
static void setAclData(const acl::list &aclData, bool isDir=false)
Definition: outputHandlerDcap.cpp:188
outputHandler
Definition: ioHandle.h:9
dcapIoCommon::path
const std::string path
Definition: dcapCommon.h:76
copyRequest::stateType
Definition: copyRequestTypes.h:66
outputHandler::dcap::remove
void remove(const std::string &path, copyRequest::stateType &state) override
Definition: outputHandlerDcap.cpp:81
outputHandler::dcap::writerDcap::writeBlock
void writeBlock(const block &b) override
Definition: outputHandlerDcap.cpp:305
OptionsChrono.h
outputHandler::base
Definition: outputHandler.h:17
outputHandler::base::renameRetvalType
renameRetvalType
Definition: outputHandler.h:106
outputHandler::dcap::writerDcap::closeAndRemoveBadCopy
void closeAndRemoveBadCopy() override
Definition: outputHandlerDcap.cpp:278
block
data block, used to hold the data that are being copied (or checksummed).
Definition: block.h:7
outputHandler::dcap::writerDcap::unsafeWrite
static options::single< bool > unsafeWrite
Definition: outputHandlerDcap.h:14
outputHandler::dcap::writerDcap
Definition: outputHandlerDcap.h:12
outputHandler::dcap::writerDcap::~writerDcap
~writerDcap() noexcept(false) override
Definition: outputHandlerDcap.cpp:293
outputHandler::dcap::writerDcap::writerDcap
writerDcap(const std::string &aPath, bool mightAppend, size_t sourceSize, size_t readBlockSize, copyRequest::stateType &state, bool noWrite, std::unique_ptr< acl::list > aAclData)
Definition: outputHandlerDcap.cpp:246
outputHandler::dcap::writerDcap::doAttributePreservations
void doAttributePreservations(const genericStat &readInitialStat) override
Definition: outputHandlerDcap.cpp:327
ioHandle
class as base for inputHandler::base::reader and outputHandler::base::writer containing the common pa...
Definition: ioHandle.h:15
outputHandler::dcap::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 >, std::unique_ptr< acl::list > aclData) override
Definition: outputHandlerDcap.cpp:13
dcapCommon.h
dcapCommon
Definition: dcapCommon.h:65
copyRequest
Definition: checksumTestRequestProvider.cpp:25
outputHandler::dcap::ensureParentDirs
void ensureParentDirs(const std::string &path, const std::string &srcPath, inputHandler::base *InputHandler) override
Definition: outputHandlerDcap.cpp:36
outputHandler.h
acl
Definition: acl.cpp:10