示例#1
0
void Scheduler::IntervalCheck()
{
	m_bDetectClockChanges = true;
	m_bExecuteProcess = true;
	m_bDownloadRateChanged = false;
	m_bPauseDownloadChanged = false;
	m_bPauseScanChanged = false;
	CheckTasks();
}
示例#2
0
void Scheduler::FirstCheck()
{
	m_mutexTaskList.Lock();
	m_TaskList.sort(CompareTasks);
	m_mutexTaskList.Unlock();

	// check all tasks for the last week
	time_t tCurrent = time(NULL);
	m_tLastCheck = tCurrent - 60*60*24*7;
	m_bDetectClockChanges = false;
	m_bExecuteProcess = false;
	m_bDownloadRateChanged = false;
	m_bPauseDownloadChanged = false;
	m_bPauseScanChanged = false;
	CheckTasks();
}
示例#3
0
void Scheduler::FirstCheck()
{
	{
		Guard guard(m_taskListMutex);

		std::sort(m_taskList.begin(), m_taskList.end(),
			[](std::unique_ptr<Task>& task1, std::unique_ptr<Task>& task2)
		{
			return (task1->m_hours < task2->m_hours) ||
				((task1->m_hours == task2->m_hours) && (task1->m_minutes < task2->m_minutes));
		});
	}

	// check all tasks for the last week
	CheckTasks();
}
示例#4
0
void Scheduler::ServiceWork()
{
	if (!DownloadQueue::IsLoaded())
	{
		return;
	}

	if (!m_firstChecked)
	{
		FirstCheck();
		m_firstChecked = true;
		return;
	}

	m_executeProcess = true;
	CheckTasks();
	CheckScheduledResume();
}
示例#5
0
void Scheduler::ServiceWork()
{
	debug("Scheduler service work");

	if (!DownloadQueue::IsLoaded())
	{
		return;
	}

	debug("Scheduler service work: doing work");

	if (!m_firstChecked)
	{
		FirstCheck();
		m_firstChecked = true;
		return;
	}

	m_executeProcess = true;
	CheckTasks();
	CheckScheduledResume();
	ScheduleNextWork();
}