ewmscp  ..
inputHandlerDavix.h
Go to the documentation of this file.
1 #ifndef __inputFileDavix_h__
2 #define __inputFileDavix_h__
3 #include "davixCommon.h"
4 #include "inputHandler.h"
5 #include <deque>
6 #include <dirent.h>
7 #include <string>
8 #include <sys/stat.h>
9 #include <sys/types.h>
10 
11 namespace inputHandler {
12 
13  class davix: public base, virtual public davixCommon {
15  public:
16  class readerDavix: public reader, virtual public davixIoCommon {
17  public:
18  readerDavix(davixCommon& aHandler,
19  const std::string& aPath,
21  const genericStat& inititalStat);
22  ~readerDavix() noexcept(false) override;
23  bool readBlock(block &b) override;
24  void readBlockP(block& b, size_t bytesToRead, off_t offset) override;
25  bool parallelizable() const override;
26  void checkUnchangedness() override;
27  };
28  davix();
29  ~davix() override = default;
30  std::unique_ptr<reader> newReader(const std::string& aPath,
32  const genericStat& inititalStat) override;
33  class DavixDirectory: public Directory {
34  DAVIX_DIR *dir;
36  public:
37  DavixDirectory(const std::string& aPath, davixCommon& aHandler);
38  ~DavixDirectory() noexcept(false) override;
39  std::unique_ptr<Entry> getNextEntry(bool ignoreMissing) override;
40  };
41  std::unique_ptr<Directory> getDirectory(const std::string& path) override;
42 
43  };
44 
45 } // end namespace inputHandler
46 #endif
inputHandler::davix::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: inputHandlerDavix.cpp:12
inputHandler::davix::readerDavix::readBlock
bool readBlock(block &b) override
Definition: inputHandlerDavix.cpp:92
inputHandler::davix::factory
static factoryTemplate< davix > factory
Definition: inputHandlerDavix.h:14
inputHandler
Definition: inputHandler.h:29
genericStat
generic stat abstraction class Used to abstract the variants of the stat structure.
Definition: genericStat.h:12
inputHandler::davix::readerDavix::checkUnchangedness
void checkUnchangedness() override
Definition: inputHandlerDavix.cpp:158
davixCommon
Definition: davixCommon.h:193
inputHandler::davix::DavixDirectory::handler
davixCommon & handler
Definition: inputHandlerDavix.h:35
inputHandler::base::factoryTemplate
Definition: inputHandler.h:55
copyRequest::stateType
Definition: copyRequestTypes.h:66
inputHandler::davix::DavixDirectory
Definition: inputHandlerDavix.h:33
inputHandler::davix::~davix
~davix() override=default
inputHandler::davix::readerDavix::parallelizable
bool parallelizable() const override
tell if this handler is capable of parallel IO. Unsually not the case
Definition: inputHandlerDavix.cpp:129
inputHandler::davix
Definition: inputHandlerDavix.h:13
inputHandler::davix::readerDavix::readerDavix
readerDavix(davixCommon &aHandler, const std::string &aPath, copyRequest::stateType &state, const genericStat &inititalStat)
Definition: inputHandlerDavix.cpp:60
inputHandler::davix::readerDavix::readBlockP
void readBlockP(block &b, size_t bytesToRead, off_t offset) override
Definition: inputHandlerDavix.cpp:133
davixIoCommon
Definition: davixCommon.h:224
block
data block, used to hold the data that are being copied (or checksummed).
Definition: block.h:7
davixCommon.h
inputHandler::davix::DavixDirectory::getNextEntry
std::unique_ptr< Entry > getNextEntry(bool ignoreMissing) override
Definition: inputHandlerDavix.cpp:49
inputHandler::base::Directory
Definition: inputHandler.h:159
inputHandler::davix::DavixDirectory::DavixDirectory
DavixDirectory(const std::string &aPath, davixCommon &aHandler)
Definition: inputHandlerDavix.cpp:28
inputHandler::davix::DavixDirectory::~DavixDirectory
~DavixDirectory() noexcept(false) override
Definition: inputHandlerDavix.cpp:37
inputHandler::base::Directory::path
const std::string path
Definition: inputHandler.h:161
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::davix::readerDavix
Definition: inputHandlerDavix.h:16
inputHandler::davix::davix
davix()
Definition: inputHandlerDavix.cpp:20
inputHandler::davix::DavixDirectory::dir
DAVIX_DIR * dir
Definition: inputHandlerDavix.h:34
inputHandler::base::Directory::Entry
Definition: inputHandler.h:163
inputHandler::davix::getDirectory
std::unique_ptr< Directory > getDirectory(const std::string &path) override
Definition: inputHandlerDavix.cpp:25
inputHandler.h
inputHandler::davix::readerDavix::~readerDavix
~readerDavix() noexcept(false) override
Definition: inputHandlerDavix.cpp:76