ewmscp  ..
outputHandlerLibssh.h
Go to the documentation of this file.
1 #ifndef __outputHandlerLibssh_h__
2 #define __outputHandlerLibssh_h__
3 #include "outputHandler.h"
4 #include "libsshCommon.h"
5 #include <sys/stat.h>
6 #include <sys/types.h>
7 
8 namespace outputHandler {
9 
10  class libssh: public base, virtual public libsshCommon {
12  public:
13  class writerLibssh: public writer, virtual public libsshIoCommon {
14  protected:
15  sftp_attributes writeInitialStat;
16  std::unique_ptr<ioHandle::attrDataType> attrData;
17 
18  public:
19  writerLibssh(const std::string& aPath,
20  libsshCommon& aHandler,
21  bool mightAppend,
22  size_t sourceSize,
23  size_t readBlockSize,
25  bool noWrite,
26  std::unique_ptr<ioHandle::attrDataType> attrData,
27  std::unique_ptr<acl::list> aclData);
28  ~writerLibssh() noexcept(false) override;
29  void closeAndRemoveBadCopy() override;
30  void seek(size_t position) override;
31  size_t getSize() const override;
32  void writeBlock(const block& b) override;
33  void doAttributePreservations(const genericStat& readInitialStat) override;
34  void sync() override;
35  };
36  libssh();
37  ~libssh() override = default;
38  std::unique_ptr<writer> newWriter(const std::string& path,
39  bool mightAppend,
40  size_t sourceSize,
41  size_t readBlockSize,
42  copyRequest::stateType &state,
43  bool noWrite,
44  std::unique_ptr<ioHandle::attrDataType> attrData,
45  std::unique_ptr<acl::list> aclData) override;
46  void ensureParentDirs(const std::string& path,
47  const std::string& srcPath,
48  inputHandler::base* InputHandler) override;
49  void remove(const std::string& path, copyRequest::stateType& state) override;
50  bool renameSimple(const std::string& fromPath,
51  const std::string& toPath) override;
52  base::renameRetvalType rename(const std::string& fromPath,
53  const std::unique_ptr<const genericStat>& readInitialStat,
54  const std::string& toPath,
55  copyRequest::stateType& state) override;
56  void createSymlink(const std::vector<char>& target,
57  const std::string& path,
58  uid_t uid, gid_t gid) override;
59  size_t getMaxNameLength(const std::string& dirPath) override;
60  };
61 }; // end namespace outputHandler
62 
63 
64 #endif
outputHandler::libssh::writerLibssh::writeBlock
void writeBlock(const block &b) override
Definition: outputHandlerLibssh.cpp:324
ioHandle::attrDataType
class for asttribute data, abstract base to be implemented for specific handlers
Definition: ioHandle.h:22
outputHandler::libssh::writerLibssh::doAttributePreservations
void doAttributePreservations(const genericStat &readInitialStat) override
Definition: outputHandlerLibssh.cpp:353
outputHandler::libssh::createSymlink
void createSymlink(const std::vector< char > &target, const std::string &path, uid_t uid, gid_t gid) override
Definition: outputHandlerLibssh.cpp:201
inputHandler
Definition: inputHandler.h:29
outputHandler::libssh::rename
base::renameRetvalType rename(const std::string &fromPath, const std::unique_ptr< const genericStat > &readInitialStat, const std::string &toPath, copyRequest::stateType &state) override
Definition: outputHandlerLibssh.cpp:140
outputHandler::libssh::remove
void remove(const std::string &path, copyRequest::stateType &state) override
Definition: outputHandlerLibssh.cpp:83
genericStat
generic stat abstraction class Used to abstract the variants of the stat structure.
Definition: genericStat.h:12
libsshCommon
Definition: libsshCommon.h:25
outputHandler::libssh::ensureParentDirs
void ensureParentDirs(const std::string &path, const std::string &srcPath, inputHandler::base *InputHandler) override
Definition: outputHandlerLibssh.cpp:43
libsshCommon.h
outputHandler::libssh::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: outputHandlerLibssh.cpp:27
outputHandler::libssh::writerLibssh::closeAndRemoveBadCopy
void closeAndRemoveBadCopy() override
Definition: outputHandlerLibssh.cpp:268
outputHandler::libssh::writerLibssh
Definition: outputHandlerLibssh.h:13
outputHandler
Definition: ioHandle.h:9
gid
options::single< int > gid
outputHandler::libssh
Definition: outputHandlerLibssh.h:10
copyRequest::stateType
Definition: copyRequestTypes.h:66
libsshIoCommon
Definition: libsshCommon.h:56
outputHandler::libssh::renameSimple
bool renameSimple(const std::string &fromPath, const std::string &toPath) override
Definition: outputHandlerLibssh.cpp:119
outputHandler::base
Definition: outputHandler.h:17
libsshIoCommon::path
const std::string path
Definition: libsshCommon.h:59
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::libssh::getMaxNameLength
size_t getMaxNameLength(const std::string &dirPath) override
Definition: outputHandlerLibssh.cpp:398
outputHandler::libssh::writerLibssh::writeInitialStat
sftp_attributes writeInitialStat
Definition: outputHandlerLibssh.h:15
outputHandler::libssh::factory
static factoryTemplate< libssh > factory
Definition: outputHandlerLibssh.h:11
outputHandler::libssh::writerLibssh::sync
void sync() override
Definition: outputHandlerLibssh.cpp:390
uid
options::single< int > uid
outputHandler::libssh::writerLibssh::writerLibssh
writerLibssh(const std::string &aPath, libsshCommon &aHandler, 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)
Definition: outputHandlerLibssh.cpp:220
outputHandler::base::factoryTemplate
template for factoryClass-derived factories
Definition: outputHandler.h:39
outputHandler::libssh::writerLibssh::seek
void seek(size_t position) override
Definition: outputHandlerLibssh.cpp:316
ioHandle
class as base for inputHandler::base::reader and outputHandler::base::writer containing the common pa...
Definition: ioHandle.h:15
outputHandler::libssh::writerLibssh::~writerLibssh
~writerLibssh() noexcept(false) override
Definition: outputHandlerLibssh.cpp:290
copyRequest
Definition: checksumTestRequestProvider.cpp:25
outputHandler::libssh::writerLibssh::attrData
std::unique_ptr< ioHandle::attrDataType > attrData
Definition: outputHandlerLibssh.h:16
outputHandler.h
outputHandler::libssh::writerLibssh::getSize
size_t getSize() const override
Definition: outputHandlerLibssh.cpp:320
acl
Definition: acl.cpp:10