ewmscp
..
|
#include <atomic>
#include <condition_variable>
#include <csignal>
#include <deque>
#include <forward_list>
#include <iomanip>
#include <iostream>
#include <mutex>
#include <thread>
#include <vector>
#include <dirent.h>
#include <grp.h>
#include <libgen.h>
#include <pwd.h>
#include <string.h>
#include <sys/resource.h>
#include <sys/time.h>
#include <unistd.h>
#include "timer.h"
#include "copyRequest.h"
#include "ewmscp.h"
#include "scoped.h"
#include "syslogstream.h"
#include "errMsgQueue.h"
#include "throwcall.h"
#include "requestProvider.h"
#include "git-rev.h"
Go to the source code of this file.
Classes | |
class | queuesAndThreads |
class to make sure all threads are joined before thread object is deleted in case of an exception to do so, all queues must be signalled as done More... | |
Functions | |
decltype(uid) | uid ('\0', "uid", "uid of created files and directories", -1) |
decltype(gid) | gid ('\0', "gid", "gid of created files and directories", -1) |
decltype(noCopy) | noCopy ('\0', "noCopy", "do not create a copy", false) |
decltype(dereference) | dereference ( 'L', "dereference", "always follow symbolic links in SOURCE", false) |
decltype(verbose) | verbose ( 'v', "verbose", "explain what is being done", false) |
decltype(quiet) | quiet ( 'q', "quiet", "be as quiet as possible", false) |
decltype(workDir) | workDir ('\0', "workDir", "use DIRECTORY as work dir") |
decltype(continueOnError) | continueOnError ('\0', "continueOnError", "don't stop on errors in non-follow mode", false) |
decltype(nThreads) | nThreads ('\0', "nThreads", "number of simultaneous copys", 1) |
decltype(writeRateLimit) | writeRateLimit ("writeRateLimit") |
decltype(fileRateLimit) | fileRateLimit ("fileRateLimit") |
decltype(readRateLimit) | readRateLimit ("readRateLimit") |
decltype(modeBits) | modeBits ('\0', "mode", "access mode for copied files", 0644) |
decltype(statPrefix) | statPrefix ('\0', "statPrefix", "prefix for statistics log lines", "") |
decltype(requestProviderName) | requestProviderName ('\0', "requestProvider", "name of request provider", "cmdLine") |
decltype(printStatAnyway) | printStatAnyway ('\0', "printStatAnyway", "print stat values at the end anyway") |
decltype(outputHandlerName) | outputHandlerName ('\0', "outputHandler", "name of outputHandler", "posixFile") |
decltype(inputHandlerName) | inputHandlerName ('\0', "inputHandler", "name of inputHandler", "posixFile") |
decltype(resultOutput) | resultOutput (nullptr) |
static void | pidFileRemover () |
static volatile std::atomic< bool > | statPrintRequested (false) |
static volatile std::atomic< bool > | statResetRequested (false) |
void | sigUsrHandler (int sigNum) |
void | delayRequest (copyRequest::timedQueue &delayedRequests, copyRequest::simpleQueue &requests) |
runs as it's own thread to move delayed requests from the delay queue to the requests queue as soon as they become available. More... | |
void | printResults (copyRequest::simpleQueue &results, copyRequest::simpleQueue &requests, std::ostream &hashStream, std::ostream &logStream, std::ostream &statStream) |
void | printErrors (std::ostream &errStream, messageQueue::queue *errQueue) |
Variables | |
decltype(preserve) | preserve |
set of properties to preserve in the copy More... | |
decltype(checksumCreators) | checksumCreators |
static options::single< std::string > | pidFileName ('\0', "pidFile", "name of PID file") |
static options::single< bool > | printErrorLocation ('\0', "printErrorLocation", "print error location (file,line,v fct) instead of prefix") |
void delayRequest | ( | copyRequest::timedQueue & | delayedRequests, |
copyRequest::simpleQueue & | requests | ||
) |
runs as it's own thread to move delayed requests from the delay queue to the requests queue as soon as they become available.
The delaying itself is hidden inside the delayedRequests queue, see waitQueues::timed
Definition at line 224 of file ewmscp.cpp.
References waitQueues::timed< T, clock_type >::dequeue(), and waitQueues::simple< T >::enqueue().
|
static |
Definition at line 120 of file ewmscp.cpp.
References throwcall::good0(), and pidFileName.
void printErrors | ( | std::ostream & | errStream, |
messageQueue::queue * | errQueue | ||
) |
Definition at line 291 of file ewmscp.cpp.
References errStream(), logstream::namedLevel::getNameByLevel(), errMsg::message::getQueue(), printErrorLocation, stopRequest::RequestStop(), messageQueue::queue::send(), statPrefix(), and timerInst.
void printResults | ( | copyRequest::simpleQueue & | results, |
copyRequest::simpleQueue & | requests, | ||
std::ostream & | hashStream, | ||
std::ostream & | logStream, | ||
std::ostream & | statStream | ||
) |
Definition at line 231 of file ewmscp.cpp.
References waitQueues::simple< T >::dequeue(), errMsg::emit(), copyRequest::base::getStatPrinter(), stopRequest::RequestStop(), copyRequest::base::resetStats(), waitQueues::simple< T >::size(), statPrefix(), statPrintRequested(), statResetRequested(), and errMsg::warning.
decltype( resultOutput ) resultOutput | ( | nullptr | ) |
void sigUsrHandler | ( | int | sigNum | ) |
Definition at line 129 of file ewmscp.cpp.
References statPrintRequested(), and statResetRequested().
|
static |
|
static |
decltype( checksumCreators ) checksumCreators |
Definition at line 113 of file ewmscp.cpp.
Referenced by copyRequest::base::addExpectedChecksumResult(), and copyRequest::base::init().
|
static |
Referenced by pidFileRemover().
decltype( preserve ) preserve |
set of properties to preserve in the copy
Definition at line 111 of file ewmscp.cpp.
Referenced by outputHandler::libssh::writerLibssh::doAttributePreservations(), outputHandler::posixFile::writerPosixFile::doAttributePreservations(), outputHandler::daosFs::writerDaosFs::doAttributePreservations(), outputHandler::dcap::doAttributePreservations(), outputHandler::posixFile::doAttributePreservations(), outputHandler::daosFs::doAttributePreservations(), outputHandler::dcap::ensureParentDirs(), and copyRequest::base::process().
|
static |
Referenced by printErrors().