 |
ewmscp
..
|
Go to the documentation of this file. 1 #ifndef __fileInWork_h__
2 #define __fileInWork_h__
21 class fileInWork :
public std::list<std::unique_ptr<base>> {
32 static std::condition_variable
cv;
51 return iter->second.empty();
86 auto result =
filesInWork.emplace(fileName, clock_type::now());
91 void enRegister(std::unique_ptr<copyRequest::base>& request);
106 std::unique_ptr<copyRequest::base>
getNext();
static std::map< std::string, fileInWork > filesInWork
maps file names to filesInWork objects
decltype(filesInWork) ::iterator iter
fileInWork(clock_type::time_point earliest)
clock_type::time_point getEarliestprocessTime() const
std::unique_lock< decltype(filesInWorkMutex)> lock
inserter(const std::string &fileName)
typeChanger(copyRequest::base &request, stateBitType newType)
this class handles the mutex protection of the filesInWork map
clock_type::time_point earliestProcessTime
process at earliest at this time
std::chrono::system_clock clock_type
type for time measurements
void enRegister(std::unique_ptr< copyRequest::base > &request)
register a request in the fileInWork list
fileInWork & getFileInWork()
lockuser(decltype(iter) Iter)
create a new fileInWork instance in the map.
void markForQueueing(std::unique_ptr< copyRequest::base > &request)
static std::condition_variable cv
needed for signaling that no file is in work anymore
std::unique_ptr< copyRequest::base > getNext()
This class holds info aboput a file that is "in work" in some way.
static void waitForAllInstancesGone()
slotTypes queuedRequestType
#define timerInst(subfunc)
slotTypes getLatestRequestType() const
eraser(const copyRequest::base &request)
void updateExecTime(clock_type::time_point start)
static std::mutex filesInWorkMutex
protects the filesInWork map
clock_type::duration waitTime
delay that gets added to now() to calculate earliestProcessTime
class to get copyRequest out of the fileInWork list.
void setWaitTime(clock_type::duration aWaitTime)