ewmscp  ..
Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
noFollowRequestProvider Class Referenceabstract

#include <noFollowRequestProvider.h>

Inheritance diagram for noFollowRequestProvider:
[legend]
Collaboration diagram for noFollowRequestProvider:
[legend]

Public Member Functions

 noFollowRequestProvider (decltype(requests) aRequests, decltype(delayedRequests) aDelayedRequests, decltype(parents) aParents, decltype(InputHandler) aInputHandler, decltype(OutputHandler) aOutputHandler)
 
 ~noFollowRequestProvider () override=default
 
bool isFollowMode () const override
 
void processSources (const std::vector< std::string > &sources) override
 
- Public Member Functions inherited from requestProvider
 requestProvider (decltype(requests) aRequests, decltype(delayedRequests) aDelayedRequests, decltype(parents) aParents, decltype(InputHandler) aInputHandler, decltype(OutputHandler) aOutputHandler)
 ! use only the file name part in the destination More...
 
virtual ~requestProvider ()=default
 
virtual void prepareMappings (std::vector< std::string > &sources, std::string &destination)
 
virtual void printMappings (std::ostream &stream)
 

Protected Member Functions

virtual void processSource (const std::string &source)=0
 
virtual copyRequest::basenewRequest (inputHandler::base *InputHandler, const std::string &aSource, const std::string &aDestination, std::unique_ptr< const genericStat > &aStat, const singleMap &aMapEntry, bool remove, copyRequest::clock_type::time_point timestamp)
 
- Protected Member Functions inherited from requestProvider
virtual const singleMapgetDstPath (const std::string &source, std::string &destination, bool baseNameOnly=false)
 get detstination papth for a given source path More...
 

Static Protected Attributes

static options::single< std::string > & sourceDecodeMethod
 
static options::single< bool > ignoreMissing
 
static std::multiset< copyRequest::base *, copyRequest::base::pointerComparerequestSet
 
- Static Protected Attributes inherited from requestProvider
static options::map< std::string, pathMapTypepathMap
 
static singleMap badMapEntry
 

Additional Inherited Members

- Static Public Member Functions inherited from requestProvider
static requestProvidernewProvider (const std::string &choice, decltype(requests) aRequests, decltype(delayedRequests) aDelayedRequests, decltype(parents) aParents, decltype(InputHandler) aInputHandler, decltype(OutputHandler) aOutputHandler)
 
static void addAllowedNamesToOption (options::single< std::string > &option)
 
- Static Protected Member Functions inherited from requestProvider
static std::map< std::string, factoryClass * > & getFactoryMap ()
 
- Protected Attributes inherited from requestProvider
copyRequest::simpleQueuerequests
 
copyRequest::timedQueuedelayedRequests
 
bool parents
 
inputHandler::baseInputHandler
 
outputHandler::baseOutputHandler
 

Detailed Description

Definition at line 8 of file noFollowRequestProvider.h.

Constructor & Destructor Documentation

◆ noFollowRequestProvider()

noFollowRequestProvider::noFollowRequestProvider ( decltype(requests aRequests,
decltype(delayedRequests aDelayedRequests,
decltype(parents aParents,
decltype(InputHandler aInputHandler,
decltype(OutputHandler aOutputHandler 
)
inline

Definition at line 23 of file noFollowRequestProvider.h.

27  :
28  requestProvider(aRequests, aDelayedRequests, aParents, aInputHandler, aOutputHandler) {};

◆ ~noFollowRequestProvider()

noFollowRequestProvider::~noFollowRequestProvider ( )
overridedefault

Member Function Documentation

◆ isFollowMode()

bool noFollowRequestProvider::isFollowMode ( ) const
inlineoverridevirtual

Implements requestProvider.

Definition at line 30 of file noFollowRequestProvider.h.

30  {
31  return false;
32  };

◆ newRequest()

copyRequest::base * noFollowRequestProvider::newRequest ( inputHandler::base InputHandler,
const std::string &  aSource,
const std::string &  aDestination,
std::unique_ptr< const genericStat > &  aStat,
const singleMap aMapEntry,
bool  remove,
copyRequest::clock_type::time_point  timestamp 
)
protectedvirtual

Reimplemented in listingRequestProvider.

Definition at line 15 of file noFollowRequestProvider.cpp.

21  {
22  return new copyRequest::base(aInputHandler, aSource, aDestination, aStat, aMapEntry, remove, timestamp);
23 }

Referenced by cmdLineRequestProvider::addDirContent(), and cmdLineRequestProvider::processSource().

Here is the caller graph for this function:

◆ processSource()

virtual void noFollowRequestProvider::processSource ( const std::string &  source)
protectedpure virtual

Implemented in cmdLineRequestProvider, policyRunRequestProvider, checksumTestRequestProvider, and moveRequestProvider.

Referenced by processSources().

Here is the caller graph for this function:

◆ processSources()

void noFollowRequestProvider::processSources ( const std::vector< std::string > &  sources)
overridevirtual

Implements requestProvider.

Definition at line 24 of file noFollowRequestProvider.cpp.

24  {
25 
26  for (auto& source : sources) {
27  static auto escaper = escapism::newEscaper(sourceDecodeMethod);
28  if (escaper) {
29  std::string srcbuf;
30  escaper->deEscape(source, srcbuf);
31  processSource(srcbuf);
32  } else {
33  processSource(source);
34  }
35  }
36  timerInst(requestEnqueue);
37  for (auto request : requestSet) {
38  std::unique_ptr<copyRequest::base> item(request);
39  requests.enqueue(item);
40  }
41  requestSet.clear();
42 }

References waitQueues::simple< T >::enqueue(), escapism::newEscaper(), processSource(), requestProvider::requests, requestSet, sourceDecodeMethod, and timerInst.

Here is the call graph for this function:

Member Data Documentation

◆ ignoreMissing

options::single<bool> noFollowRequestProvider::ignoreMissing
staticprotected

◆ requestSet

std::multiset<copyRequest::base*, copyRequest::base::pointerCompare> noFollowRequestProvider::requestSet
staticprotected

◆ sourceDecodeMethod

options::single<std::string>& noFollowRequestProvider::sourceDecodeMethod
staticprotected

The documentation for this class was generated from the following files:
noFollowRequestProvider::sourceDecodeMethod
static options::single< std::string > & sourceDecodeMethod
Definition: noFollowRequestProvider.h:10
copyRequest::base
class for copy requests.
Definition: copyRequest.h:99
waitQueues::simple::enqueue
void enqueue(std::unique_ptr< T > &item)
Definition: waitQueues.h:37
requestProvider::requests
copyRequest::simpleQueue & requests
Definition: requestProvider.h:31
escapism::newEscaper
static const escapism * newEscaper(const std::string &name)
Definition: escapism.cpp:25
noFollowRequestProvider::processSource
virtual void processSource(const std::string &source)=0
timerInst
#define timerInst(subfunc)
Definition: timer.h:157
noFollowRequestProvider::requestSet
static std::multiset< copyRequest::base *, copyRequest::base::pointerCompare > requestSet
Definition: noFollowRequestProvider.h:13
requestProvider::requestProvider
requestProvider(decltype(requests) aRequests, decltype(delayedRequests) aDelayedRequests, decltype(parents) aParents, decltype(InputHandler) aInputHandler, decltype(OutputHandler) aOutputHandler)
! use only the file name part in the destination
Definition: requestProvider.h:74